Android CheckBox 复选框(自定义复选框)

简介: Android CheckBox 复选框(自定义复选框)

一、正常使用

  • 代码
<!-- CheckBox -->
<CheckBox
    android:id="@+id/man"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="男"/>
<!-- CheckBox -->
<CheckBox
    android:id="@+id/woman"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="女"/>
  • 如果需要 设置文字与选择框的距离,加上 android:paddingLeft="5dp" 配置即可。
public class MainActivity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener {
    @SuppressLint("WrongConstant")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 获得按钮
        CheckBox manBox = (CheckBox) findViewById(R.id.man);
        CheckBox womanBox = (CheckBox) findViewById(R.id.woman);
        // 添加选中监听
        manBox.setOnCheckedChangeListener(this);
        womanBox.setOnCheckedChangeListener(this);
    }
    @Override
    public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
        // 获取内容
        String str = compoundButton.getText().toString();
        // 是否选中
        if (compoundButton.isChecked()) {
            Toast.makeText(this, str, Toast.LENGTH_LONG).show();
        }
    }
}
  • 效果

二、drawable 自定义

<!-- CheckBox -->
<CheckBox
    android:id="@+id/none"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="无"
    android:button="@drawable/check_box"/>
  • drawable 代码
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_enabled="true"
        android:state_checked="false"
        android:drawable="@drawable/box_normal"/>
    <item
        android:state_enabled="true"
        android:state_checked="true"
        android:drawable="@drawable/box_check"/>
</selector>
  • 效果

二、style 自定义

  • 它还是基于 drawable 代码
  • xml 代码
<!-- CheckBox -->
<CheckBox
    android:id="@+id/none"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    style="@style/MyCheckBox"
    android:text="无"/>
  • drawable 代码,需要在 res/values/styles.xml 文件中添加,如果没有 styles.xml 手动创建一下。
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MyCheckBox">
        <!-- 导入 drawable 文件中的 check_box -->
        <item name="android:button">@drawable/check_box</item>
    </style>
</resources>
  • 效果与 drawable 一致。


相关文章
|
25天前
|
XML Java Android开发
Android实现自定义进度条(源码+解析)
Android实现自定义进度条(源码+解析)
53 1
|
4月前
|
XML Android开发 数据安全/隐私保护
Android 自定义开源库 EasyView
Android 自定义开源库 EasyView
|
4月前
|
XML Java Android开发
Android Studio App开发中改造已有的控件实战(包括自定义支付宝月份选择器、给翻页栏添加新属性、不滚动的列表视图 附源码)
Android Studio App开发中改造已有的控件实战(包括自定义支付宝月份选择器、给翻页栏添加新属性、不滚动的列表视图 附源码)
42 1
|
4月前
|
XML 搜索推荐 Java
Android App开发之自定义图形中位图与图形互转、剪裁图形内部区域、给图形添加部件的讲解及实战(附源码 简单易懂)
Android App开发之自定义图形中位图与图形互转、剪裁图形内部区域、给图形添加部件的讲解及实战(附源码 简单易懂)
33 0
|
4月前
|
XML 前端开发 Java
Android Studio App自定义控件中自定义视图的绘制讲解及实战(附源码 包括自定义绘制各种图形)
Android Studio App自定义控件中自定义视图的绘制讲解及实战(附源码 包括自定义绘制各种图形)
40 1
|
4天前
|
移动开发 Java Unix
Android系统 自动加载自定义JAR文件
Android系统 自动加载自定义JAR文件
21 1
|
4天前
|
Shell Android开发 开发者
Android系统 自定义动态修改init.custom.rc
Android系统 自定义动态修改init.custom.rc
23 0
|
4天前
|
存储 安全 Android开发
Android系统 自定义系统和应用权限
Android系统 自定义系统和应用权限
19 0
|
4月前
|
XML API Android开发
Android 自定义View 之 圆环进度条
Android 自定义View 之 圆环进度条
|
29天前
|
Android开发
Android 开发 pickerview 自定义选择器
Android 开发 pickerview 自定义选择器
12 0