我有一个名为“凭据”的首选项组,我想根据凭据是否有效更改该标题的颜色。
当我启动我的 PreferenceActivity 时,我通过抓取它来保留对凭据项的引用
// ... code ...
public enum CredentialsInfo {
VALID, INVALID, UNKNOWN
}
private Preference credentials;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.my_preferences);
credentials = findPreference(getString(R.string.credentials));
// ... etc ...
}
一旦我完成了对我的凭据的验证,我就会运行一个名为的函数,该函数updateCredentialsBarColor
应该加载正确的可绘制对象并将凭据首选项设置为适当的颜色。虽然当我尝试改变颜色时没有任何反应。我是否错误地获得了视图,如果是这样,获得它的正确方法是什么?
private void updateCreditialsBarColor(CredentialsInfo state) {
Drawable background = null;
switch(state) {
case VALID:
background = getResources().getDrawable(R.drawable.credentials_state_valid);
break;
case INVALID:
background = getResources().getDrawable(R.drawable.credentials_state_invalid);
break;
case UNKNOWN:
default:
background = getResources().getDrawable(R.drawable.credentials_state_unknown);
break;
}
if(background != null) {
View credentialsView = credentials.getView(null, null);
credentialsView.setBackgroundDrawable(background);
}
}