单选框,将几个包含在radiogroup组中,每次只能一个被选中,默认布局radiogroup的方向是垂直的。
<RadioGroup
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/rg"
android:orientation="horizontal"
>
<RadioButton
android:id="@+id/rb1"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="A"
/>
<RadioButton
android:id="@+id/rb2"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="B"
/>
<RadioButton
android:id="@+id/rb3"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="C"
/>
<RadioButton
android:id="@+id/rb4"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="D"
/>
</RadioGroup>
找控件id
RadioGroup rg = (RadioGroup) findViewById(R.id.rg);
rb1 = (RadioButton) findViewById(R.id.rb1);
rb2 = (RadioButton) findViewById(R.id.rb2);
rb3 = (RadioButton) findViewById(R.id.rb3);
rb4 = (RadioButton) findViewById(R.id.rb4);
设置监听方法,这里不需要判断ischecked,因为
checkedId就是被选中的id,是唯一的。
rg.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override<pre name="code" class="java">rg.clearCheck();
public void onCheckedChanged(RadioGroup group, int checkedId) {//这里的checkid只会有一个的,因为是一组switch (checkedId) {case R.id.rb1:break;default:break;}}}); 设置默认选中项,
rg.check(rb3.getId());
清空选项
rg.clearCheck();