Android - пользовательский макет строки в моей ListPreference

В моем приложении для Android я реализовал класс SubtitleColorListPreference который простирается от ListPreference, Мне это нужно, потому что мне нужно установить свой собственный макет для каждого элемента в списке. Все отлично работает и выглядит так:

Пользовательский макет в ListPreference

Важный код находится в методе onPrepareDialogBuilder(AlertDialog.Builder builder)где я поставил свою ListAdapter,

@Override
protected void onPrepareDialogBuilder(AlertDialog.Builder builder) {
    // some other code is here ...
    ListAdapter listAdapter = new SubtitleColorAdapter(getContext(), R.layout.subtitle_color_preference_item, colorNameHolders, index, this);
    builder.setAdapter(listAdapter, this);
}

Теперь мне нужно использовать PreferenceFragmentCompat вместо PreferenceFragment, Так что мой SubtitleColorListPreference должен продлить android.support.v7.preference.ListPreference, И здесь проблема - нет onPrepareDialogBuilder метод в этом ListPreference, Также я не нашел подобного метода. Я попытался найти несколько примеров, как создать кастом android.support.v7.preference.ListPreference, но безуспешно. Кто-нибудь знает, как я могу решить это?

1 ответ

Google считает, что вам не нужно настраиваемое представление в ListPreference, Кажется, единственный способ использовать устаревший PreferenceFragment а также android.preference.ListPreference или оставайтесь с устаревшим SDK 27. Понятно, что они не понимают, что делают.

Другие вопросы по тегам