获取选中的RadioButton两种方式:
第一种方式
通过radioGroup.getCheckedRadioButtonId()来得到选中的RadioButton的ID,从而利用findviewbyid得到RadioButton进而获取选中值
1.布局文件
<RadioGroup android:id="@+id/radio_group" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:orientation="vertical" android:paddingLeft="30dp" android:paddingRight="30dp"> <RadioButton android:id="@+id/safety_production" android:layout_width="170dp" android:layout_height="wrap_content" android:textColor="@color/font_2" android:textSize="18sp" android:padding="5dp" android:tag="2"/> <RadioButton android:id="@+id/emergency_drill" android:layout_width="170dp" android:layout_height="wrap_content" android:textColor="@color/font_2" android:textSize="18sp" android:padding="5dp" android:tag="3"/> <RadioButton android:id="@+id/other_services" android:layout_width="170dp" android:layout_height="wrap_content" android:textColor="@color/font_2" android:textSize="18sp" android:padding="5dp" android:tag="4"/> </RadioGroup>
2.具体用法.
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, int i) { selectRadioBtn(); }
});
private void selectRadioBtn(){
RadioButton rb = (RadioButton)ServiceRequestActivity.this.findViewById(radioGroup.getCheckedRadioButtonId());
text.setText(rb.getText);
}
第二种方式
需要利用一下三个方法
(1)radiogroup.getChildCount() 获取radiogroup中子组件(radioButton)的数目
(2)radiogroup.getChildAt() 根据索引获取当前索引对应的radioButton
(3)radiobutton.isChecked() 判断当前组件是否被选中
整体思路是,对radiogroup中组件进行循环,依次判断isChecked(),从而找到选中的组件()
int count = radioGroup.getChildCount(); for(int i = 0 ;i < count;i++){ RadioButton rb = (RadioButton)radioGroup.getChildAt(i); if(rb.isChecked()){ Toast.makeText(ServiceRequestActivity.this, "选中"+rb.getTag().toString(), Toast.LENGTH_SHORT).show(); break; } }第二种是在点击提交时的监听里面调用,放在初始化里面是取不到选中的值。