studio programacion para móviles libro edición desarrollo desarrollar curso aprende aplicaciones android android-preferences

para - manual de programacion android pdf



¿Cómo habilitar una preferencia en mi aplicación de Android cuando otra preferencia está deshabilitada? (4)

Android CheckBox ??

Supongo que está utilizando Android.widget.checkBox:

http://developer.android.com/reference/android/widget/CheckBox.html

Prueba esto

public class MyActivity extends Activity { protected void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.content_layout_id); final CheckBox checkBox1 = (CheckBox) findViewById(R.id.checkbox_id); if (checkBox1.isChecked()) { checkBox2.setChecked(false); } } }

¡¡Buena suerte!!

He usado PreferenceActivity para tener preferencia en mi aplicación de Android. Quiero que una preferencia diga "pref 2" que se habilite cuando otra preferencia que diga "pref 1" no esté marcada y "pref 2" esté desactivada cuando esté marcada "pref 1". Es decir, exactamente opuesto al atributo android:dependancy .

¿Cómo puedo hacer eso?


De acuerdo con la documentación here , puede agregar un atributo a la etiqueta CheckBoxPreference así:

android:disableDependentsState="true"

Por defecto, esto es falso, lo que significa que los dependientes están deshabilitados cuando la casilla de verificación no está marcada, pero al establecerla en verdadero, debería tener el efecto contrario.


No creo que haya una solución lista para usar, es decir, un atributo de dependancy invertida. Pero siempre hay un click-listener:

preference1.setOnPreferenceClickListener(pref1_click); .... private OnPreferenceClickListener pref1_click = new OnPreferenceClickListener() { public boolean onPreferenceClick(Preference preference) { preference2.setEnabled(!preference1.isChecked()); return true; } }


Sí, es posible hacer esto fuera de la caja. Digamos que desea deshabilitar pref2 cuando pref1 está desactivado
Aquí está el código (diseño de preferencia xml) para ponerlo en pref1:

<CheckBoxPreference android:title="Pref1" android:key="pref1"> </CheckBoxPreference>

Aquí está el código (diseño de preferencia xml) para poner en pref2:

<EditTextPreference android:dialogMessage="Pref 2 dialog" android:title="Pref2" android:key="pref2" android:dependency="pref1"> </EditTextPreference>

Como dijo sigmazero13, por defecto disableDependentsState es falso, por lo que no es necesario incluirlo en los atributos pref1.