在我的Android应用程序中,我实现了SubtitleColorListPreference类,该类从ListPreference扩展而来。我需要这样做,因为我需要为列表中的每个项目设置自己的布局。一切正常,看起来像这样:

Android-我的ListPreference中的自定义行布局-LMLPHP

重要的代码在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,但是没有成功。
有人知道我该怎么解决吗?

最佳答案

Google认为您不需要ListPreference中的自定义 View 。看来,唯一的方法是使用不推荐使用的PreferenceFragmentandroid.preference.ListPreference或使用过时的SDK27。显然,他们不了解自己在做什么。

关于Android-我的ListPreference中的自定义行布局,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34363951/

10-12 02:04