在活动中动态选择radiobutton视图

时间:2015-05-05 12:41:56

标签: java android android-radiogroup

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

  • 4频道

  • 9频道

现在:

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

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

  3. "如果你移动,所有保存的项目都将被删除"

    1. 在对话框中我有"是"和"不"按钮。如果您点击"是"按钮,它将选择9频道单选按钮。
    2. 我想解决的问题是:

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

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

      3. 我如何实现上述两种情况?我不知道如何获取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);
        } 
        

2 个答案:

答案 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