一、RadioButton(单选按钮)
1.1、简介
RadioButton表示单选按钮,是button的子类,每一个按钮都有选择和未选中两种状态,经常与RadioGroup一起使用,否则不能实现其单选功能。RadioGroup继承自LinearLayout,可以使用Orientation属性控制RadioButton的排列方向。单项选择相信大家都不陌生吧。Android平台也提供了单项选择的组件,可以通过RadioGroup、RadioButton组合起来完成一个单项选择的效果。
1.2、基本用法与事件处理
如题单选按钮,就是只能够选中一个,所以我们需要把RadioButton放到RadioGroup按钮组中,从而实现 单选功能!先熟悉下如何使用RadioButton,一个简单的性别选择的例子: 另外我们可以为外层RadioGroup设置orientation属性然后设置RadioButton的排列方式,是竖直(android:orientation="vertical")还是水平((android:orientation="horizontal")!
1.2.1、获得选中的值有四种方式:
(1)、为RadioButton在xml中设置一个事件监听器
XML:
<RadioGroup android:id="@+id/rg1" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <RadioButton android:id="@+id/radiobutton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="btnRadioButton1" android:text="男" android:textSize="30dp"/> <RadioButton android:id="@+id/radiobutton2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="btnRadioButton2" android:text="女" android:textSize="30dp"/> </RadioGroup>
Activity:
public class MainActivity extends AppCompatActivity { private RadioButton radioButton1; private RadioButton radioButton2; private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_view_main); radioButton1 = findViewById(R.id.radiobutton1); radioButton2 = findViewById(R.id.radiobutton2); textView = findViewById(R.id.textview); } public void btnRadioButton1(View view) { textView.setText("您的性别为男"); } public void btnRadioButton2(View view) { textView.setText("您的性别为女"); } }
效果图:
(2)、为RadioButton设置一个事件监听器setOnCheckChangeListener
XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="请选择性别?" android:textSize="20sp" android:textStyle="bold" android:layout_margin="10dp"/> <RadioGroup android:id="@+id/radiogroup" android:layout_width="match_parent" android:layout_height=&