0
我有一个自定义布局,我用对话框首选项,并且布局在对话框中显示正常,但问题是我有布局中的复选框,并检查它们不使他们按预期行事。下面是我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