首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于radiogroup的android onCheckedChanged

用于radiogroup的android onCheckedChanged
EN

Stack Overflow用户
提问于 2013-08-30 23:09:03
回答 6查看 75.9K关注 0票数 29

我正在用android编写一个Activity,在RadioGroup下面有两个单选按钮。默认情况下会选中其中一个。但是我不能在onCreate方法中触发事件,这样我就可以在其中做一些事情。单击时,onCheckedChanged运行正常。

代码语言:javascript
复制
RadioGroup ItemtypeGroup = (RadioGroup) findViewById(R.id.rechargeItemtype);
    RadioButton providerRadio = (RadioButton) findViewById(R.id.a);
    providerRadio.performClick();

    ItemtypeGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged (RadioGroup group,int checkedId){

            Log.d("chk", "id" + checkedId);

            if (checkedId == R.id.a) {
                //some code
            } else if (checkedId == R.id.b) {
                //some code
            }
        }
    });
EN

回答 6

Stack Overflow用户

发布于 2013-08-31 00:53:16

要在初始化时触发默认的单选复选框,请执行以下操作。使用clearCheck方法将所有内容设置为未选中,然后设置处理程序,然后设置默认值,您的处理程序将被触发。

代码语言:javascript
复制
itemtypeGroup.clearCheck();

然后像往常一样添加一个监听器...

代码语言:javascript
复制
itemtypeGroup
        .setOnCheckedChangeListener(new OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
Log.d("chk", "id" + checkedId);

                if (checkedId == R.id.a) {
                    //some code
                } else if (checkedId == R.id.b) {
                    //some code
                }

            }

        });

然后选中默认的单选按钮,监听程序就会触发。

代码语言:javascript
复制
rb = (RadioButton) view.findViewById(R.id.a);
rb.setChecked(true);

祝好运

票数 46
EN

Stack Overflow用户

发布于 2016-01-24 05:30:03

代码语言:javascript
复制
 radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {

            if (checkedId == R.id.radioButton1) {
             //do work when radioButton1 is active
            } else  if (checkedId == R.id.radioButton2) {
             //do work when radioButton2 is active
          } else  if (checkedId == R.id.radioButton3) {
             //do work when radioButton3 is active
          }

        }
    });

这对我很有效。希望是有帮助的

票数 10
EN

Stack Overflow用户

发布于 2017-02-21 19:18:37

试试这段代码。

在您的onCreate方法中声明此代码。

代码语言:javascript
复制
    RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radiogroup);
    radioGroup.clearCheck();
    radioGroup.setOnCheckedChangeListener(new  RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {

            RadioButton rb = (RadioButton) group.findViewById(checkedId);
            if (null != rb && checkedId > -1) {

                // checkedId is the RadioButton selected
                switch (checkedId) {
                    case R.id.one:
                     // Do Something
                      break;

                    case R.id.two:
                    // Do Something
                      break;   

                    case R.id.three:
                    // Do Something   
                        break;
                }
            }
        }

    });

希望这能有所帮助。

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

https://stackoverflow.com/questions/18536195

复制
相关文章

相似问题

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