У меня есть экран настроек в моем приложении, где пользователь должен выбрать значение из списка:
<PreferenceCategory
android:title="@string/entry_preferences">
<ListPreference
android:key="list_preference_access"
android:title="@string/title_list_preference_access"
android:summary="@string/summary_list_preference_access"
android:dialogTitle="@string/title_list_preference_access" />
</PreferenceCategory>
А затем в PreferenceFragment:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.preferences);
ListPreference listPreferenceAccess = (ListPreference) findPreference("list_preference_access");
//Populates with a List
if (listPreferenceAccess != null) {
ArrayList<EventAccess> eaList = Statics.getEventAccessList();
CharSequence entries[] = new String[eaList.size()];
CharSequence entryValues[] = new String[eaList.size()];
int i = 0;
for (EventAccess ea : eaList) {
entries[i] = ea.getName();
entryValues[i] = Long.toString(ea.getId());
i++;
}
listPreferenceAccess.setEntries(entries);
listPreferenceAccess.setEntryValues(entryValues);
}
}
Работает как талисман, однако ArrayList "EventAccess" имеет значения +/- 150 и получает хитрость при поиске элемента. Я бы хотел, чтобы DialogPreference из ListPreference был доступен для поиска. Возможно ли это?