TextView的drawableLeft使用选择器不起作用的解决办法
我的方法是自定义textview。
public class MyTextView extends TextView implements Checkable{
private boolean mChecked;
private static final int[] CHECKED_STATE_SET = {
android.R.attr.state_checked
};
public MyTextView(Context context) {
super(context);
}
public MyTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected int[] onCreateDrawableState(int extraSpace) {
final int[] drawableState = super.onCreateDrawableState(extraSpace + 1);
if (isChecked()) {
mergeDrawableStates(drawableState, CHECKED_STATE_SET);
}
return drawableState;
}
@Override
public boolean isChecked() {
return mChecked;
}
@Override
public void setChecked(boolean arg0) {
mChecked = arg0;
refreshDrawableState();
}
@Override
public void toggle() {
mChecked = !mChecked;
}
}
此时使用选择器还是不起作用
我们需要在代码中设置一下
tvKind.setChecked(false);
tvKind.setChecked(true);
对于不同的条件进行判断,此时就可以正常使用了