最近遇到的一个小需求,可以简化为该模型,因此写一个Demo以记录。其实比较简单,主要利用Selector,只是网上找了一番也没找到ListView在点击后背景色一直是checked的,大多数是pressed效果(点击瞬间变背景),或者是利用RadioButton or CheckBox之类,这些都不是我想要的。
先放效果图:
分析:
最简单的ListView,其中条目View继承了CheckedTextView。该类实现了Checkable接口,调用其setChecked方法可以匹配selector中android:state_checked="true"属性,做到点击后效果保持。因此也可以自定义View实现Checkable,实现setChecked()、isChecked()、toggle()三个方法即可:
public void toggle() {
setChecked(!mChecked);
}
public boolean isChecked() {
return mChecked;
}
public void setChecked(boolean checked) {
if (mChecked != checked) {
mChecked = checked;
refreshDr