无意中看到这么一个控件----ToggleButton,他又两个状态选中(checked)和未选中状态。样式和button差不多,未选中时默认是选中状态是,其实感觉和checkbox的效果差不多,我们可以看到选中与否button的背景是不一样的。开始以为是专门的效果,后来才发现其实就改变了背景。这里我们可以设置背景,以及选中和未选中状态的文字(不设置的话和上面一样是默认的)。
<span style="white-space:pre"> </span>btn.setTextOff("未选中");//未选中的文本
btn.setTextOn("选中了");//选中的文本
btn.setBackgroundColor(Color.YELLOW);
设置后的样式如下(当然这里也可以在布局中设置,不过动态设置的优先级是大于布局中的)
和 ,现在很明显知道了默认的样式是北京相应改变了。
默认的话,一开始是未选中状态,这里我们可以让他setChecked(true)。
它有个选中的监听方法,这里找了两张图片,根据是否选中设置的。
btn.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
iv.setImageResource(R.drawable.bulb_on);
}
else{
iv.setImageResource(R.drawable.bulb_off);
}
}
});
和
最后可以获取button上的文字
<span style="white-space:pre"> </span>btn.getTextOff(); //获取未选中状态的文字
<span style="white-space:pre"> </span>btn.getTextOn(); //获取选中状态的文字