Программное создание ListPreference - но список записей пуст
я пытаюсь программно создать ListPreference
, что я могу сделать, но когда я выбираю его, список записей пуст. Я считаю, что я правильно устанавливаю setEntries()
и setEntryValues()
С CharSequence
массивы, но он просто пуст, когда я его выбираю.
пожалуйста, найдите ниже ActivitySetting
класса. Обратите внимание, что я использую PreferenceFragments
, чтобы не использовать устаревшие методы. Но у меня только один PreferenceFragment
, который в настоящее время установлен по умолчанию
@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);
}
}
}
вот настройка.xml это просто имеет один PreferenceCategory
которой ListPreference
добавлено:
<?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>
вот что я получаю. The ListPreference
успешно, но когда я выберите его.... Нет записей : (я ожидаю варианты: "один", "два", "три"
2 ответов
найдено, если вы установили setDialogMessage()
затем это перезаписывает содержимое, поэтому, удалив эту строку, она работает сейчас.