「資格情報」というプリファレンスグループがあり、資格情報が有効かどうかに基づいてそのヘッダーの色を変更したいと思います。私は自分の資格情報の検証が終わっていたら、私は私の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);
}
}