대화 상자 환경 설정에서 사용하고있는 사용자 정의 레이아웃이 있는데, 대화 상자에 잘 나타납니다. 그러나 문제는 레이아웃에서 확인란을 선택했는지 확인하는 것입니다. 그들이 예상대로 행동하게하십시오. 다음은 내 DialogPreferences.java 클래스의 코드입니다 :사용자 정의 레이아웃에서 대화 환경 설정 사용하기
@Override
protected void onDialogClosed(boolean positiveResult) {
LayoutInflater inflater = ((Activity)getContext()).getLayoutInflater();
View view = inflater.inflate(R.layout.imagechoice, null);
button1 = (CheckBox)view.findViewById(R.id.background1);
button2 = (CheckBox)view.findViewById(R.id.background2);
button3 = (CheckBox)view.findViewById(R.id.background3);
button4 = (CheckBox)view.findViewById(R.id.background4);
button1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
selected=1;
button2.setChecked(false);
button3.setChecked(false);
button4.setChecked(false);
}
});
button2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {
selected=2;
button1.setChecked(false);
button3.setChecked(false);
button4.setChecked(false);
}
});
if(positiveResult){
Log.d("BACKGROUND onDialogClosed", Integer.toString(selected));
persistInt(selected);
}
super.onDialogClosed(positiveResult); //To change body of overridden methods use File | Settings | File Templates.
}
응용 프로그램이 실행되고 난 로그가 열려, 내가 첫 번째 또는 두 번째 검사를 선택 시도하고 난 항상 로그 문에 의해 인쇄 된 값 0을 참조 선택한 변수가 예상대로 업데이트되지 않음을 나타냅니다. 체크 상자 코드를
public DialogPreferences(Context oContext, AttributeSet attrs)
{...}
메서드에 넣으려고했는데 같은 결과가 나타났습니다. 이 파일의 어느 메소드에서 체크 박스가 체크되었을 때 어떤 일을하기 위해 필요한 코드를 넣을 적절한 장소입니까?
더 이해하기 쉽습니다. 이전에 경험했던 것과 동일한 결과를 얻었지만 기대했던 결과는 아닙니다. – ez4nick