了解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(); } }); } }
由于监听事件比较易懂,这里就不做过多的注释了。