如何在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>
如果用户选择选项 3
,我想获取索引 2。
Is there an easy way to get the selected index of a RadioGroup in Android or do I have to use OnCheckedChangeListener to listen for changes and have something that holds the last index selected?
example 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>
if a user selects option 3
I want to get the index, 2.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(19)
您应该能够执行以下操作:
如果
RadioGroup
包含其他视图(例如TextView
),则indexOfChild()
方法将返回错误的索引。要获取
RadioGroup
上选定的RadioButton
文本:You should be able to do something like this:
If the
RadioGroup
contains other Views (like aTextView
) then theindexOfChild()
method will return wrong index.To get the selected
RadioButton
text on theRadioGroup
:这应该有效,
This should work,
您可以引用单选按钮组并使用 getCheckedRadioButtonId () 来获取选中的单选按钮 ID。看一下这里
然后当你需要时获取所选的收音机选项。
You could have a reference to the radio group and use
getCheckedRadioButtonId ()
to get the checked radio button id. Take a look hereThen when you need to get the selected radio option.
试试这个
try this
您可以使用 OnCheckedChangeListener 或使用 getCheckedRadioButtonId()
You can either use OnCheckedChangeListener or can use getCheckedRadioButtonId()
您可以使用:
You can use:
//用于获取所选项目的id
//获取所选项目的视图
//use to get the id of selected item
//get the view of the selected item
它以这种方式对我来说非常有效:
It worked perfectly for me in this way:
您所需要的只是首先为您的 RadioButton 设置值,例如:
然后每当选择这个特定的 radioButton 时,您都可以通过您给它的 Id 来拉取它的值
,干杯!
All you need is to set values first to your RadioButton, for example:
and then whenever this spacific radioButton will be chosen you can pull its value by the Id you gave it with
Cheers!
聚会迟到了,但这里是 @Tarek360 的 Kotlin 答案的简化,它适合可能包含非 RadioButtons 的
RadioGroup
:如果您是
RadioFroup
肯定只有 < code>RadioButtons 那么这可以很简单:那么您就没有
findViewById
的开销。Late to the party, but here is a simplification of @Tarek360's Kotlin answer that caters for
RadioGroup
s that might contain non-RadioButtons:If you're
RadioFroup
definitely only hasRadioButton
s then this can be a simple as:Then you don't have the overhead of
findViewById
.只需使用这个:
just use this:
这是一个 Kotlin 扩展,用于获取正确的位置,即使您的组包含 TextView 或任何非 RadioButton。
Here is a Kotlin extension to get the correct position even if your group contains a TextView or any non-RadioButton.
你可以
从广播组做。
这是示例:
you can do
from the radio group .
Here it is sample :
您可以简单地
- 在 onCreate 方法中声明单选组和单选按钮
- 在 onCreate 方法中
设置视图 id - 获取使用选择的单选按钮
id - 使用 id 来匹配按钮选择的视图
- 最后获取单选按钮的值
--- PS:如果你想要一个 INT 值,那么你可以转换它
You can simply
-declare the radio group and a radio button out of onCreate method
-set the view id in the onCreate method
-take the radiobutton id selected using
-use the id to match the buttonselected view
-finally get the value of the radio button
--- PS: IF YOU WANT AN INT VALUE, THEN YOU CAN CAST IT
您已经为每个单选按钮分配了一个 ID。使用 case 块,您可以手动检测选定的单选按钮,或者使用 OnCheckedChangeListener 也可以检测到它。
xml:
java:
或
You have already assigned an id for each radio button. With a case block you can detect manually the selected radio button or with OnCheckedChangeListener you get it too.
xml:
java:
or