时间:2022-10-25 09:32:45 | 栏目:Android代码 | 点击:次
本文实例为大家分享了Android实现单选按钮的具体代码,供大家参考,具体内容如下
在默认情况下,单选按钮显示为一个圆形图标,可以在图标旁放一些说明文字。通常情况下RadioButton组件需要与RadioGroup组件一起使用,组成一个单选按钮组。RadioGroup是可以容纳多个RadioButton的容器。
<LinearLayout android:layout_width="match_parent" android:layout_height="60dp" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="match_parent" android:text="选择性别:" android:textSize="25sp" android:gravity="center" android:textColor="@color/black"/> <RadioGroup android:id="@+id/radioGroup" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" android:gravity="center"> <RadioButton android:id="@+id/radio_man" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="男" android:textColor="@color/black" android:textSize="25sp" android:checked="true"/> <RadioButton android:id="@+id/radio_female" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="女" android:textColor="@color/black" android:layout_marginLeft="100dp" android:textSize="25sp"/> </RadioGroup> </LinearLayout> <Button android:id="@+id/bt_submit" android:layout_width="100dp" android:layout_height="50dp" android:text="提交" android:textSize="20sp" android:layout_marginTop="10dp" android:layout_gravity="center"/>
布局效果显示:
RadioButton组件的android:checked属性用来指定选中的状态,android:checked="true"时,表示选中;android:checked="false"时,表示取消选中。
获得选中的值有三种方法:
第一种是为RadioButton设置一个事件监听器setOnCheckChangeListener。
public class MainActivity extends AppCompatActivity { RadioGroup radioGroup; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化控件 initView(); //点击事件 clickEvent(); } private void initView() { radioGroup = findViewById(R.id.radioGroup); } private void clickEvent() { //给RadioGroup绑定监视器 radioGroup.setOnCheckedChangeListener(new MyRadioButtonListener()); } //单选按钮监听 private class MyRadioButtonListener implements RadioGroup.OnCheckedChangeListener { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { RadioButton r = (RadioButton) findViewById(checkedId);//获取被选中的Id Log.i("单选按钮监听", "选择性别为:" + r.getText().toString()); } } }
单选按钮监听日志效果:
第二种通过单击其他按钮获取选中单选按钮的值。
public class MainActivity extends AppCompatActivity implements View.OnClickListener { RadioGroup radioGroup; //提交 Button bt_submit; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化控件 initView(); //点击事件 clickEvent(); } private void initView() { radioGroup = findViewById(R.id.radioGroup); bt_submit = findViewById(R.id.bt_submit); } private void clickEvent() { //提交 bt_submit.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.bt_submit: for (int i = 0; i < radioGroup.getChildCount(); i++) { RadioButton r = (RadioButton) radioGroup.getChildAt(i); if (r.isChecked()) { Log.i("单击其他按钮时获取", "选择性别为:" + r.getText()); } } break; } } }
判断单击其他按钮获取选中单选按钮的值的日志效果展示:
第三种判断被点击的id是哪一个单选按钮的id,通过id去获取值。
public class MainActivity extends AppCompatActivity { RadioGroup radioGroup; //男 RadioButton radio_man; //女 RadioButton radio_female; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化控件 initView(); //点击事件 clickEvent(); } private void initView() { radioGroup = findViewById(R.id.radioGroup); radio_man = findViewById(R.id.radio_man); radio_female = findViewById(R.id.radio_female); } private void clickEvent() { //给RadioGroup绑定监视器 radioGroup.setOnCheckedChangeListener(new MyRadioButtonListener()); } //单选按钮监听 private class MyRadioButtonListener implements RadioGroup.OnCheckedChangeListener { @Override public void onCheckedChanged(RadioGroup group, int checkedId) { // 选中状态改变时被触发 switch (checkedId) { case R.id.radio_female: // 当用户选择女性时 Log.i("判断点击Id的单选按钮", "选择性别为:" + radio_female.getText().toString()); break; case R.id.radio_man: // 当用户选择男性时 Log.i("判断点击Id的单选按钮", "选择性别为:"+radio_man.getText().toString()); break; } } } }
判断点击的单选按钮日志效果展示: