Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何更改CheckBoxPreference的文本颜色';安卓的标题是什么?_Java_Android_Customization_Checkboxpreference - Fatal编程技术网

Java 如何更改CheckBoxPreference的文本颜色';安卓的标题是什么?

Java 如何更改CheckBoxPreference的文本颜色';安卓的标题是什么?,java,android,customization,checkboxpreference,Java,Android,Customization,Checkboxpreference,我想这样做:当取消选中CheckBoxPreference时,CheckBoxPreference标题的文本颜色变为灰色,如果选中,标题的文本颜色将恢复为原始颜色(取决于主题) 到目前为止,我所做的是:我创建了一个新类,它从CheckBoxPreference扩展而来 public class CustomCheckBoxPreference extends CheckBoxPreference{ TextView txtTitle; int originalTextColor

我想这样做:当取消选中CheckBoxPreference时,CheckBoxPreference标题的文本颜色变为灰色,如果选中,标题的文本颜色将恢复为原始颜色(取决于主题)

到目前为止,我所做的是:我创建了一个新类,它从
CheckBoxPreference
扩展而来

public class CustomCheckBoxPreference extends CheckBoxPreference{

    TextView txtTitle;
    int originalTextColor;

    public CustomCheckBoxPreference(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected void onBindView(View view) {

        txtTitle = (TextView) view.findViewById(android.R.id.title);
        originalTextColor = txtTitle.getCurrentTextColor();

        setOnPreferenceClickListener(new OnPreferenceClickListener() {
            @Override
            public boolean onPreferenceClick(Preference preference) {
                if (isChecked()) {
                    txtTitle.setTextColor(originalTextColor);  //it doesn't work
                }
                else {
                    txtTitle.setTextColor(Color.GRAY);  //it doesn't work
                }
                return true;
            }
        });

        super.onBindView(view);
    }
}

当我运行应用程序时,
txtitle.setTextColor(…)
显然不起作用,文本颜色根本没有改变。我还与调试器确认调用了preferenceclick的
方法。

即使我也这样做了,但没有为我工作,我也不知道原因

但如果您删除首选项ClickListener()上的
并仅在其他情况下使用,则它将起作用

protected void onBindView(View view) {

    txtTitle = (TextView) view.findViewById(android.R.id.title);
    originalTextColor = txtTitle.getCurrentTextColor();


            if (isChecked()) {
                txtTitle.setTextColor(originalTextColor); 
            }
            else {
                txtTitle.setTextColor(Color.GRAY); 
            }
            return true;

    super.onBindView(view);

}

您正在使用check isChecked(),但它是在哪里定义的?您需要使用((CheckBoxPreference)preference.isChecked()进行检查,而不是只使用icChecked()purpose@RajenRaiyarela:我从CheckBoxPreference类扩展而来,这就是它的来源。