"자격 증명"이라는 기본 설정 그룹이 있는데 자격 증명의 유효성 여부에 따라 해당 헤더의 색을 변경하고 싶습니다. 내 자격 증명을 확인 마쳤하고 일단 내 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);
}
}