我想这样做:当CheckBoxPreference未选中时,CheckBoxPreference标题的文本颜色变为灰色,如果选中,标题的文本颜色将恢复为原始颜色(取决于主题)。如何更改android中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);

}

}

当我运行应用程序时,txtTitle.setTextColor(..)显然没有奏效,文字颜色一点都没有改变。我也已经通过调试器确认调用了方法onPreferenceClick。

2014-09-02

null

+0

您正在使用检查isChecked()但它在哪里定义?而不是只使用icChecked()你需要使用((CheckBoxPreference)首选项).isChecked()用于检查目的 –

2014-10-08 11:20:24

+0

@RajenRaiyarela:我从CheckBoxPreference类扩展,这就是它的来源。 –

2014-10-15 11:44:21

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐