Ho PreferenceScreen con alcuni PreferenceCheckBoxes. Voglio cambiare il testoColor e textSize per titolo e riassunto e le immagini per il CheckBox selezionato e deseleziona. Quindi sto usando android:layout
per cambiare questo attributo.CheckBoxPreference con il proprio layout
mio ChceckBoxPreference:
<CheckBoxPreference
android:layout="@layout/preference_checkbox"
android:key="temp"
android:title="@string/title"
android:summary="@string/summary"
android:defaultValue="true"
/>
Quando uso android:widgetLayout
sembra strano. E questo è il mio preference_checkbox.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_marginLeft="10dp"
>
<TextView
android:id="@+android:id/title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="@color/gray"
android:textSize="20sp"
/>
<TextView
android:id="@+android:id/summary"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="@color/gray"
android:textSize="14sp"
/>
</LinearLayout>
<CheckBox
android:id="@+android:id/checkbox"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
/>
</RelativeLayout>
Titolo con id @+android:id/title
e sommario con @+android:id/summary
stanno mostrando valori corretti. Tuttavia la casella di controllo nonostante il valore predefinito e l'ID @+android:id/checkbox
non funziona correttamente. Non sta mostrando il valore corretto e non posso cambiare il valore mantenuto nelle preferenze. Senza utilizzare alcun layout, posso modificare il valore della casella di controllo toccando l'intero CheckBoxPreference. Ma ora (con il mio layout) posso cambiare il valore della casella di controllo solo toccando questa casella di controllo. Come posso rendere il layout di CheckBoxPreference in modo corretto con tutte le funzionalità?
Vedi http://stackoverflow.com/questions/3569412/customize-check-box-preference, impostare cliccabile e attivabile su false per la vostra casella – devisnik
@devisnik la OP sta parlando di cambiare l'intero layout dietro la preferenza, la soluzione che hai indicato riguarda solo la casella di controllo –
la risposta di devisnik dovrebbe essere quella corretta. Queste impostazioni sono necessarie per effettuare una modifica del valore di preferenza. – user1608385