Hallo,
da bin ich schon wieder mit einer Frage:
Wie und womit ist das unterschiedliche Verhalten einer PreferenceActivity zu erklären, in Abhängigkeit davon, ob die einzelnen Objekte in der PreferenceActivity direkt im Programmcode gesetzt werden, oder ab sie in einer xml-Datei definiert werden.
Beispiel: eine Checkbox ist in der einstellungs.xml so definiert:
Und so funktioniert es auch, das Editobjekt wird immer dann auch deaktiviert, wenn in der Checkbox kein Häkchen ist.
<CheckBoxPreference
android:key="bei_prog_start_toggle"
android:title="@string/einstellungen_beiprogstart" />
<EditTextPreference
android:key="edittext_name"
android:dependency="bei_prog_start_toggle"
android:title="@string/einstellungen_beiprogstart_name"
android:dialogTitle="@string/einstellungen_beiprogstart_nametitel" />
Wenn ich jedoch das entsprechende im Programmcode selbst setze,
CheckBoxPreference bei_progstartCheckBoxPref = new CheckBoxPreference(this);
bei_progstartCheckBoxPref.setTitle(R.string.einstellungen_beiprogstart);
bei_progstartCheckBoxPref.setKey("bei_prog_start_toggle");
bei_prog_startPrefCat.addPreference(bei_progstartCheckBoxPref);
EditTextPreference editTextname = new EditTextPreference(this);
editTextname.setDialogTitle(R.string.einstellungen_beiprogstart_nametitel);
editTextname.setKey("edittext_name");
editTextname.setDependency("bei_prog_start_toggle");
so funktioniert es nicht, ich erhalte einen Fehler genau an der Stelle, wo setDependency aufgelöst werden soll,
01-03 16:41:09.119: E/AndroidRuntime(4209): Caused by: java.lang.IllegalStateException: Dependency "bei_prog_start_toggle" not found for preference "edittext_name" (title: "null"
Ich hatte gedacht setDependency würde genauso arbeiten wie android:dependency
Welchen Gedankenfehler mach ich?
Fragende Grüße, schymura