我想根据对话框按下屁股打开或关闭开关对接。但是当我按是的时,它可以正常工作,但是当我按否时它不起作用,这意味着swith buttion and对话框不是根据对话框中选定的选项的同步。在这里是我的代码
s.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, final boolean isChecked) {
final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(DisplayBasicData.this);
alertDialogBuilder.setMessage("make decision");
alertDialogBuilder.setPositiveButton("yes",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if(isChecked){
s.setChecked(true);
}
dialog.cancel();
}
});
alertDialogBuilder.setNegativeButton("No",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Log.d("ygyu",""+isChecked);
if(!isChecked ||isChecked){
s.setChecked(false);
dialog.dismiss();}
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
我已经对您的代码进行了一些编辑,请查看:
final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(DisplayBasicData.this);
alertDialogBuilder.setMessage("make decision");
alertDialogBuilder.setPositiveButton("yes",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
s.setChecked(true);
dialog.cancel();
}
});
alertDialogBuilder.setNegativeButton("No",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Log.d("ygyu",""+isChecked);
s.setChecked(false);
dialog.dismiss();
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
使用
final Switch switch1 =(Switch) findViewById(R.id.switch1);
switch1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(MainActivity.this);
alertDialogBuilder.setMessage("make decision");
alertDialogBuilder.setPositiveButton("yes",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if((!switch1.isChecked()) ||(switch1.isChecked())) {
switch1.setChecked(true);
}
dialog.cancel();
}
});
alertDialogBuilder.setNegativeButton("No",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if ((!switch1.isChecked()) || (switch1.isChecked())) {
switch1.setChecked(false);
}
dialog.dismiss();
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();
}
});