如何在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();