Ich versuche programmgesteuert ein ListPreference
zu erstellen, was ich tun kann, aber wenn ich es auswähle, ist die Liste der Einträge leer. Ich glaube, ich setze die setEntries()
und setEntryValues()
mit CharSequence
Arrays richtig, aber es ist nur leer, wenn ich es auswähle.Programmgesteuertes Erstellen von ListPreference - aber Eintragsliste ist leer
Hier finden Sie die ActivitySetting
Klasse. Bitte beachten Sie, dass ich PreferenceFragments
verwende, um veraltete Methoden nicht zu verwenden. Aber ich habe nur einen PreferenceFragment
, die derzeit als Standard
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// Display the fragment as the main content.
getFragmentManager().beginTransaction().replace(android.R.id.content, new PrefsFragment()).commit();
}
public static class PrefsFragment extends PreferenceFragment
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.settings);
// Create the new ListPref
ListPreference customListPref = new ListPreference(getActivity());
// Get the Preference Category which we want to add the ListPreference to
PreferenceCategory targetCategory = (PreferenceCategory) findPreference("TARGET_CATEGORY");
CharSequence[] entries = new CharSequence[]{"One", "Two", "Three"};
CharSequence[] entryValues = new CharSequence[]{ "1", "2", "3" };
// IMPORTANT - This is where set entries...looks OK to me
customListPref.setEntries(entries);
customListPref.setEntryValues(entryValues);
customListPref.setTitle("Title");
customListPref.setSummary("This is the summary");
customListPref.setDialogMessage("Dialog Message");
customListPref.setPersistent(true);
// Add the ListPref to the Pref category
targetCategory.addPreference(customListPref);
}
}
}
Hier gesetzt wird, ist der setting.xml es hat nur die einzigen PreferenceCategory
, die die ListPreference
hinzugefügt:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<PreferenceCategory android:title="Some Options" android:key="TARGET_CATEGORY">
</PreferenceCategory>
</PreferenceScreen>
Hier ist, was ich bekomme . Die ListPreference
wurde erfolgreich, aber wenn ich es wählen .... Keine Einträge :(Ich erwarte die Optionen: „One“, „Two“, „Three“
Dank war ich ein bisschen eine Zeit, um die Antwort der Umsetzung von http://stackoverflow.com/a/5375442/1815624 'this' funktionierte nicht' neuer ListPrefer ence (this) 'obwohl' getActivity' funktionierte 'new ListPreference (getActivity())' – CrandellWS