ListPreference更改对话框样式(单选按钮颜色)

时间:2015-09-01 12:56:25

标签: android android-alertdialog preferenceactivity listpreference android-radiobutton

ListPreferenceHey我使用PreferenceActivity并使用ListPreference为其添加了单选按钮。问题是listPreference使用它自己的对话框,它有蓝色单选按钮(棒棒糖上的绿色),我需要将其更改为橙色。 我设法得到对话框并使用以下内容更改标题和分隔符颜色:

listPreference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
        @Override
        public boolean onPreferenceClick(Preference preference) {
            AlertDialog dialog = (AlertDialog) listPreference.getDialog();
            if (dialog != null) {
                changeDialog(getApplicationContext(), dialog);
            }
            return true;
        }}); 



public void changeDialog(Context context, final AlertDialog dialog) {
        int titleViewId = dialog.getContext().getResources().getIdentifier("android:id/alertTitle", null, null);
        TextView title = (TextView) dialog.findViewById(titleViewId);
        title.setTextColor(context.getResources().getColor(R.color.orange));
    }

因此,如果标题ID为" android:id / alertTitle"并且divder id是" android:id / titleDivider",单选按钮的id是多少?

2 个答案:

答案 0 :(得分:0)

我的解决方案是更改 colors.xml 文件中的颜色。

所以,起初我在我的 colors.xml 中有这个:

<!-- skyblue color -->
<color name="teal_200">#FF03DAC5</color>

ListPreferense 单选按钮的颜色是天蓝色。我想到将 colors.xml 中的颜色更改为绿色,如下所示:

<!-- green color -->
<color name="teal_200">#1ED760</color>

它奏效了! ListPreferense 的单选按钮颜色变为绿色。

答案 1 :(得分:0)

正确的做法是在主题中使用 <item name="colorAccent">YOUR COLOR</item>