当前位置:   article > 正文

【Android从零单排系列十】《Android视图控件——RadioButton》_android radiobutton

android radiobutton

目录

前言

一.RadioButton基本介绍

二.RadioButton常用主要属性介绍

三.RadioGroup中RadioButton使用的常见问题

四.基础DEMO示例


前言

小伙伴们,在上文中我们介绍了Android视图控件ImageView控件,本文我们继续盘点,介绍一下视图控件的第五个控件——RadioButton。

一.RadioButton基本介绍

 在 Android 应用开发中,RadioButton是单选按钮,允许用户在一个组中选择一个选项。同一组中的单选按钮有互斥效果。

二.RadioButton常用主要属性介绍

(1)button属性:主要用于图标大小要求不高,间隔要求也不高的场合。

(2)background属性:主要用于能够以较大空间显示图标的场合。

(3)drawableLeft属性:主要用于对图标与文字之间的间隔有要求的场合。

注意使用 background 或者 drawableLeft时 要设置 android:button="@null"

三.RadioGroup中RadioButton使用的常见问题

1.radiogroup中的radiobutton如何设置默认选中,可以看很早之前写的这篇文章。

RadioGroup中RadioButton默认选中问题

2.相信用过RadioGroup的同学都踩过很多坑,其中之一就是这个控件设计的不是很合理,不能设置里面的radiobutton的 排列方式(几行几列),导致我们开发的时候要调整里面的布局很是麻烦。

Radiogroup内如果有多个RadioButton如何设置自动换行并且保留点击事件,这个可以看我很早之前写的一篇文章 RadioGroup 自动换行且保留点击事件

3.适用于较少类型的  radiobutton单选换行功能

 Android 实现radiobutton单选换行效果

四.基础DEMO示例

activity_radiobutton.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:app="http://schemas.android.com/apk/res-auto"
  4. xmlns:tools="http://schemas.android.com/tools"
  5. android:layout_width="match_parent"
  6. android:layout_height="match_parent"
  7. tools:context=".MainActivity"
  8. android:orientation="vertical">
  9. <TextView
  10. android:id="@+id/button"
  11. android:text="【Android从零单排系列十】《Android视图控件——RadioButton》"
  12. android:background="@drawable/btn_selector"
  13. android:layout_width="match_parent"
  14. android:layout_marginTop="30dp"
  15. android:layout_marginLeft="20dp"
  16. android:layout_marginRight="20dp"
  17. android:layout_height="wrap_content"/>
  18. <RadioGroup
  19. android:id="@+id/radioGroup"
  20. android:layout_width="match_parent"
  21. android:layout_height="wrap_content"
  22. android:layout_marginTop="20dp"
  23. android:gravity="center"
  24. android:orientation="horizontal">
  25. <RadioButton
  26. android:id="@+id/radioButton1"
  27. android:layout_width="wrap_content"
  28. android:layout_height="wrap_content"
  29. android:button="@null"
  30. android:checked="true"
  31. android:drawablePadding="10dp"
  32. android:layout_marginRight="30dp"
  33. android:drawableLeft="@drawable/radio_btn_selector"
  34. android:gravity="center"
  35. android:text="红色"
  36. android:textColor="#FF0033"/>
  37. <RadioButton
  38. android:id="@+id/radioButton2"
  39. android:layout_width="wrap_content"
  40. android:layout_height="wrap_content"
  41. android:button="@null"
  42. android:drawablePadding="10dp"
  43. android:drawableLeft="@drawable/radio_btn_selector"
  44. android:gravity="center"
  45. android:text="蓝色"
  46. android:textColor="#000000"/>
  47. </RadioGroup>
  48. </LinearLayout>
RadioButtonActivity 
  1. package com.example.myapplication;
  2. import android.app.Activity;
  3. import android.graphics.Color;
  4. import android.os.Bundle;
  5. import android.widget.RadioButton;
  6. import android.widget.RadioGroup;
  7. public class RadioButtonActivity extends Activity {
  8. private RadioGroup radioGroup;
  9. private RadioButton radioButton1;
  10. private RadioButton radioButton2;
  11. @Override
  12. protected void onCreate(Bundle savedInstanceState) {
  13. super.onCreate(savedInstanceState);
  14. setContentView(R.layout.activity_radio_button);
  15. radioGroup = findViewById(R.id.radioGroup);
  16. radioButton1 = findViewById(R.id.radioButton1);
  17. radioButton2 = findViewById(R.id.radioButton2);
  18. radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
  19. @Override
  20. public void onCheckedChanged(RadioGroup group, int checkedId) {
  21. if(radioButton1.isChecked()) {
  22. radioButton1.setTextColor(Color.RED);
  23. }else{
  24. radioButton1.setTextColor(Color.parseColor("#000000"));
  25. }
  26. if(radioButton2.isChecked()) {
  27. radioButton2.setTextColor(Color.RED);
  28. }else{
  29. radioButton2.setTextColor(Color.parseColor("#000000"));
  30. }
  31. }
  32. });
  33. }
  34. }

3.radio_btn_selector

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android">
  3. <item android:state_checked="true" android:drawable="@mipmap/on"/>
  4. <item android:drawable="@mipmap/off"/>
  5. </selector>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/675860
推荐阅读
相关标签
  

闽ICP备14008679号