我正在开发一个应用程序,其中我的活动有2个单选按钮。
4频道
9频道
现在:
屏幕的默认选择是4channel单选按钮。
如果用户想要点击(9channel)按钮,它会打开一个提示用户的对话框
"如果你移动,所有保存的项目都将被删除"
我想解决的问题是:
当用户点击"否"对话框上的按钮,我退出对话框。但选择单选按钮仍然会移动到(9channel)单选按钮。如果用户点击"否"如何保留旧选择在对话框上?
活动的默认选择是打开(4channel)单选按钮。如果用户单击相同的选定按钮,我不希望打开对话框。 只有当我点击另一个单选按钮时,该对话框才会打开。
我如何实现上述两种情况?我不知道如何获取radionbutton视图并向用户显示。
我的代码:
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);
}
答案 0 :(得分:1)
为"否定"制作代码代码中的选项:
new AlertDialog.Builder(this)
.setTitle("Hello!")
.setMessage("Choose your RadioButton:")
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
rb1.setChecked(true);
rb2.setChecked(false);
}
})
.setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
rb1.setChecked(false);
rb2.setChecked(true);
}
})
.setIcon(android.R.drawable.ic_dialog_alert)
.show();
答案 1 :(得分:0)
为1,在对话框按钮监听器中,执行:
首先,将单选按钮移动到全局变量,并在对话框弹出窗口中添加以下监听器。
然后,更新负面按钮的监听器:
.setNegativeButton(getString(R.string.alert_dialog_negative_text),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//not checked, but according to api, should be this method
rb1.setSelected(true);
}
});
为2,您可以检查您的侦听器代码,如果选中了单击的单选按钮,则不要显示对话框。
但我个人建议您使用OnCheckedChangeListener
作为单选按钮,请参阅此问题:radio button listener