首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态选择活动内的无线电按钮视图

动态选择活动内的无线电按钮视图
EN

Stack Overflow用户
提问于 2015-05-05 12:41:56
回答 2查看 416关注 0票数 0

我正在处理一个应用程序,其中我的活动有两个单选按钮。

  • 4通道
  • 9通道

现在:

  1. 默认的屏幕选择是4通道单选按钮。
  2. 如果用户想单击(9通道)按钮,它将打开一个提示用户的对话框。

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

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

我想解决的问题是:

  1. 当用户单击对话框上的"No“按钮时,我退出了对话框。但是选择单选按钮仍然移动到(9通道)单选按钮。如果用户单击对话框中的“否”,如何保留旧的选择?
  2. 活动的默认选择是打开(4通道)单选按钮。如果用户单击相同的选定按钮,我不希望对话框打开。只有当我单击另一个单选按钮时,对话框才会打开。

如何实现上述2种方案?我不知道如何获得无线电按钮的视图并显示给用户。

我的守则:

代码语言:javascript
复制
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);
} 
EN

回答 2

Stack Overflow用户

发布于 2015-05-05 12:53:08

在代码中为“否定”选项设置代码:

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2015-05-05 12:58:04

对于1,在对话框按钮侦听器中,执行以下操作:

首先,将单选按钮移动到全局变量,并将以下侦听器添加到对话框弹出。

然后,将侦听器更新为“否定”按钮:

代码语言:javascript
复制
.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,您可以在侦听器代码中进行检查,如果选中了单击的单选按钮,请不要使用showDialog。

但就我个人而言,我建议将OnCheckedChangeListener用于单选按钮,请参阅以下问题:radio button listener

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30053274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档