RadioGroup with two columns which have ten RadioButtons

后端 未结 12 1962
难免孤独
难免孤独 2020-11-27 07:16

I have a RadioGroup and I want to align buttons next to each other in two columns and five rows and I am unable to achieve it. Things I have tried:

12条回答
  •  感情败类
    2020-11-27 07:48

    Make 2 RadioGroup in the xml file using LinearLayout each having 5 RadioButton and using layout_weight property place them side by side on the screen. Then create listener for these radio groups as shown below:

    rg1 = (RadioGroup) findViewById(R.id.radiogroup1);
    rg2 = (RadioGroup) findViewById(R.id.radiogroup2);
    rg1.clearCheck();//this is so we can start fresh, with no selection on both RadioGroups
    rg2.clearCheck();
    rg1.setOnCheckedChangeListener(new OnCheckedChangeListener() {
    
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                // TODO Auto-generated method stub
                if (checkedId != -1) {
                    fun2();
                }
            }
        });
    
        rg2.setOnCheckedChangeListener(new OnCheckedChangeListener() {
    
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                // TODO Auto-generated method stub
                if (checkedId != -1) {
                    fun1();
                }
            }
        });
    

    And fun1() & fun2() will be defined as shown below:

    public void fun1() {
         rg1.setOnCheckedChangeListener(null);
         rg1.clearCheck();
         rg1.setOnCheckedChangeListener(new OnCheckedChangeListener() {
    
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                fun2();
                Log.v("Inside fun1","fun2");
            }
        });
    }
    
    public void fun2() {
         rg2.setOnCheckedChangeListener(null);
         rg2.clearCheck();
         rg2.setOnCheckedChangeListener(new OnCheckedChangeListener() {
    
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                // TODO Auto-generated method stub
                fun1();
                Log.v("Inside fun2","fun1");
    
            }
        });
    }
    

提交回复
热议问题