首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在android中选择时保存单选按钮的状态

在android中选择时保存单选按钮的状态
EN

Stack Overflow用户
提问于 2015-04-16 13:25:59
回答 2查看 883关注 0票数 0

我正在工作和应用,我的活动有两个单选按钮。

  • 4通道
  • 9通道

屏幕的默认选择是4通道单选按钮。

如果用户想单击(9通道)按钮,它会打开一个提示用户的对话框。

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

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

我想解决的问题是:

1 -当用户点击对话框上的"No“按钮时,我退出了对话框。但是,如果用户单击对话框中的"No“,单选按钮仍然会移动到(9声道)单选按钮,如何保持旧的选择。

2 -默认选择活动是在(4通道)单选按钮上。如果用户单击相同的选定按钮,我不希望对话框打开。

代码语言:javascript
复制
  The dialog box should open only if i click on the other radio button .

如何实现上述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-04-16 13:33:10

问题不在您显示的代码中。在您描述的场景中,您的应用程序集中在对话框中,因此必须控制对话框上的操作。

首先,如果按下rb1,您不想执行任何操作,所以请删除这一行:

代码语言:javascript
复制
rb1.setOnClickListener(listener);

之后,您的对话框代码就没有显示出来,所以我向您展示了我通常通过修改来满足您的需要的方式:

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

}
票数 0
EN

Stack Overflow用户

发布于 2015-04-16 13:43:47

代码语言:javascript
复制
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();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29676151

复制
相关文章

相似问题

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