0

我正在开发一个应用程序,其中我的活动有 2 个单选按钮。

  • 4通道

  • 9通道

现在:

  1. 屏幕的默认选择是在 4channel 单选按钮上。

  2. 如果用户想点击 (9channel) 按钮,它会打开一个对话框提示用户

“如果你移动,所有保存的项目都将被删除”

  1. 在对话框中,我有“是”和“否”按钮。如果单击“是”按钮,它将选择 9 通道单选按钮。

我要解决的问题是:

  1. 当用户单击对话框上的“否”按钮时,我退出对话框。但是单选按钮的选择仍然移动到(9channel)单选按钮。如果用户在对话框中单击“否”,如何保留旧选择?

  2. 活动的默认选择是(4 频道)单选按钮。如果用户单击相同的选定按钮,我不希望打开对话框。只有当我单击另一个单选按钮时,该对话框才会打开。

我怎样才能实现上述两种情况?我不知道如何获取单选按钮视图并向用户显示。

我的代码:

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);
} 
4

2 回答 2

1

在您的代码中为“Negative”选项制作代码:

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();
于 2015-05-05T12:53:08.477 回答
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单选按钮,参考这个问题:单选按钮监听器

于 2015-05-05T12:58:04.577 回答