主要想实现的功能就是,当checkBox未选择时,按钮置灰不可点击;当checkBox选中时,按钮可以点击并且变成可以点击的颜色。主要用途就在用户在使用应用之前,比如要同意一些协议或者条款这些。
废话不多说,直接上代码:
//drawable文件
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!--不可点击时-->
<item android:state_enabled="false">
<shape>
<solid android:color="@color/gray"/>
<corners android:radius="15dp"/>
</shape>
</item>
<!--可以点击时-->
<item android:state_enabled="true">
<shape>
<solid android:color="@color/colorAccent"/>
<corners android:radius="15dp"/>
</shape>
</item>
</selector>
//直接给布局文件中button的背景设置成这个drawable
android:background="@drawable/btn_bg"
//JAVA代码
btn.setEnabled(false);//默认设置按钮不可点击 checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean b) { if (b){ btn.setClickable(true); btn.setEnabled(true); } else { btn.setClickable(false); btn.setEnabled(false); } } });
OK!看下效果图