我正在工作和应用,我的活动有两个单选按钮。
屏幕的默认选择是4通道单选按钮。
如果用户想单击(9通道)按钮,它会打开一个提示用户的对话框。
“如果您移动,所有保存的项目都将被删除”
在对话框中,我有“是”和“否”按钮。如果您单击“是”按钮,它移动到9频道单选按钮选择。
我想解决的问题是:
1 -当用户点击对话框上的"No“按钮时,我退出了对话框。但是,如果用户单击对话框中的"No“,单选按钮仍然会移动到(9声道)单选按钮,如何保持旧的选择。
2 -默认选择活动是在(4通道)单选按钮上。如果用户单击相同的选定按钮,我不希望对话框打开。
The dialog box should open only if i click on the other radio button .如何实现上述2种场景。
我的守则:
rg = (RadioGroup) findViewById(R.id.radioGroup1);
public void addListenerOnButton()
{
OnClickListener listener = new OnClickListener() {
@Override
public void onClick(View v) {
RadioButton rb = (RadioButton) v;
selection = (String) rb.getText();
mFlag = true;
showDialog(SELECTION_ALERT_ID);
}
};
RadioButton rb1 = (RadioButton) findViewById(R.id.radioButton1);
rb1.setOnClickListener(listener);
RadioButton rb2 = (RadioButton) findViewById(R.id.radioButton2);
rb2.setOnClickListener(listener);
} 发布于 2015-04-16 13:33:10
问题不在您显示的代码中。在您描述的场景中,您的应用程序集中在对话框中,因此必须控制对话框上的操作。
首先,如果按下rb1,您不想执行任何操作,所以请删除这一行:
rb1.setOnClickListener(listener);之后,您的对话框代码就没有显示出来,所以我向您展示了我通常通过修改来满足您的需要的方式:
AlertDialog dialog = new AlertDialog.Builder(this)
// set's the message to the dialog
.setMessage("if you move, all saved items will be deleted")
// accept button
.setPositiveButton(android.R.string.ok, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
// select the 9channel and do the actions
}
})
// cancel button
.setNegativeButton(android.R.string.cancel, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
// dismiss action (if back button is pressed, same as cancel)
}).setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
dialog.dismiss();
}
}).create();
dialog.show();
}发布于 2015-04-16 13:43:47
AlertDialog.Builder builder = new AlertDialog.Builder(ca);
builder.setTitle("Final Cropped Image");
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//check 9chanel
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// check 4chanell
}
});
AlertDialog dialog = builder.create();
dialog.show();https://stackoverflow.com/questions/29676151
复制相似问题