【发布时间】:2014-02-15 01:37:55
【问题描述】:
我有一个自定义布局,我正在使用对话框首选项,并且布局在对话框中看起来很好,但问题是我在布局中有复选框,并且检查它们不会使它们按预期运行。下面是我的 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)
{...}
方法并导致相同的结果。在该文件的哪种方法中,将在选中复选框时执行代码的正确位置?
【问题讨论】:
标签: java android checkbox dialog-preference