如何在Android中获取RadioGroup的选定索引

有没有一种简单的方法来获取Android中的RadioGroup选定的索引,或者我必须使用OnCheckedChangeListener来监听更改,并有一些保存最后选定的索引?

例如xml:

<RadioGroup android:id="@+id/group1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical"> <RadioButton android:id="@+id/radio1" android:text="option 1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:id="@+id/radio2" android:text="option 2" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:id="@+id/radio3" android:text="option 3" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:id="@+id/radio4" android:text="option 4" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <RadioButton android:id="@+id/radio5" android:text="option 5" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RadioGroup> 

如果用户selectoption 3我想获得索引,2。

你应该可以做这样的事情:

 int radioButtonID = radioButtonGroup.getCheckedRadioButtonId(); View radioButton = radioButtonGroup.findViewById(radioButtonID); int idx = radioButtonGroup.indexOfChild(radioButton); 

如果RadioGroup包含其他视图(如TextView ),则indexOfChild()方法将返回错误的索引。

在RadioGroup上获取选定的RadioButton文本

  RadioButton r = (RadioButton) radioButtonGroup.getChildAt(idx); String selectedtext = r.getText().toString(); 

这应该工作,

 int index = myRadioGroup.indexOfChild(findViewById(myRadioGroup.getCheckedRadioButtonId())); 

你可以有一个对射频组的引用,并使用getCheckedRadioButtonId ()来获取选中的单选buttonID。 看看这里

 RadioGroup radioGroup = (RadioGroup)findViewById(R.id.radio_group); 

然后,当你需要获得选定的收音机选项。

 int checkedRadioButtonId = radioGroup.getCheckedRadioButtonId(); if (checkedRadioButtonId == -1) { // No item selected } else{ if (checkedRadioButtonId == R.id.radio_button1) { // Do something with the button } } 

尝试这个

  RadioGroup group= (RadioGroup) getView().findViewById(R.id.radioGroup); group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, int i) { View radioButton = radioGroup.findViewById(i); int index = radioGroup.indexOfChild(radioButton); } }); 

您可以使用:

 RadioButton rb = (RadioButton) findViewById(rg.getCheckedRadioButtonId()); 

您可以使用OnCheckedChangeListener,也可以使用getCheckedRadioButtonId ()

//用来获取所选项目的ID

 int selectedID = myRadioGroup.getCheckedRadioButtonId(); 

//获取所选项目的视图

 View selectedView = (View)findViewById( selectedID); 

它以这种方式为我完美地工作:

  RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radio_group); int radioButtonID = radioGroup.getCheckedRadioButtonId(); RadioButton radioButton = (RadioButton) radioGroup.findViewById(radioButtonID); String selectedtext = (String) radioButton.getText(); 

您只需要先将值设置为您的RadioButton,例如:

 RadioButton radioButton = (RadioButton)findViewById(R.id.radioButton); radioButton.setId(1); //some int value 

然后每当select这个太空radioButton时,你可以通过你提供的Id来取得它的价值

 RadioGroup radioGroup = (RadioGroup)findViewById(R.id.radioGroup); int whichIndex = radioGroup.getCheckedRadioButtonId(); //of course the radioButton //should be inside the "radioGroup" //in the XML 

干杯!

radioSexGroup =(RadioGroup中)findViewById(R.id.radioGroup);

  btnDisplay=(Button)findViewById(R.id.button); btnDisplay.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int selectedId=radioSexGroup.getCheckedRadioButtonId(); radioSexButton=(RadioButton)findViewById(selectedId); Toast.makeText(MainActivity.this,radioSexButton.getText(),Toast.LENGTH_SHORT).show(); } }); 
  int index_selected = radio_grp.indexOfChild(radio_grp .findViewById(radio_grp.getCheckedRadioButtonId())); 

你可以做

 findViewById 

从广播组。

这是样品:

 ((RadioButton)my_radio_group.findViewById(R.id.radiobtn_veg)).setChecked(true); 

只是使用这个:

  int index = 2; boolean option3Checked = radioGroup.getCheckedRadioButtonId() == radioGroup.getChildAt(2).getId();