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.