了解Android_06之CheckBox

一、CheckBox是个什么东西?

  CheckBox即复选框。

二、CheckBox样式:

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="你学习的编程语言:"
        android:textSize="24sp"
    />
    <CheckBox
        android:id="@+id/checkbox1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="PHP"
        android:textSize="22sp"
        android:layout_marginTop="10dp"
        android:button="@drawable/checkbox"
        android:paddingLeft="10dp"
    />
    <CheckBox
        android:id="@+id/checkbox2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Java"
        android:textSize="22sp"
        android:layout_marginTop="10dp"
        android:paddingLeft="10dp"
        android:button="@drawable/checkbox"
    />

分析:

 

 自定义样式xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:drawable="@drawable/checkbox_true"/>
    <item android:state_checked="false" android:drawable="@drawable/checkbox_false"/>
</selector>

自定义样式引用了两张图片:

未选中:

 

 被选中:

 

 真机调试效果为:勾选后出现被选中的图片,没勾选则使用未选中的图片

三、复选框监听事件:

public class MainActivity extends AppCompatActivity {
    private CheckBox checkBox1,checkBox2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        checkBox1 = findViewById(R.id.checkbox1);
        checkBox2 = findViewById(R.id.checkbox2);
        checkBox1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
                Toast.makeText(MainActivity.this,b?"checkBox1被选中":"checkBox1未被选中",Toast.LENGTH_SHORT).show();
            }
        });
        checkBox2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
                Toast.makeText(MainActivity.this,b?"checkBox2被选中":"checkBox2未被选中",Toast.LENGTH_SHORT).show();
            }
        });
    }
}

由于监听事件比较易懂,这里就不做过多的注释了。

posted @ 2020-10-23 22:34  曾经沧海难为水。  阅读(323)  评论(0编辑  收藏  举报