问题描述
- Android 的TextView的点击事件如何去除
-
在xml中设置TextView的clickable=false,之后判断条件比如state = 0设置TextView的onclick事件,
这时候TextView就可以点击了,但是点击之后进行操作请求网络state变为1,这时候TextView就不可以
点击了,但是再设置clickable=false不管用,还是可以点击,之后加入focuseable = false
也没用,怎么让它不可点击呢?
解决方案
public void setOnClickListener(OnClickListener l) {
if (!isClickable()) {
setClickable(true);
}
getListenerInfo().mOnClickListener = l;
}
这是因为你注册了onClick事件, clickable后面不管你怎么设置应该都没效,因为OnClickListener始终存在,建议调用setOnClickListener(null);试试
解决方案二:
public boolean dispatchTouchEvent(MotionEvent event) {
if (!onFilterTouchEventForSecurity(event)) {
return false;
}
if (mOnTouchListener != null && (mViewFlags & ENABLED_MASK) == ENABLED &&
mOnTouchListener.onTouch(this, event)) {
return true;
}
return onTouchEvent(event);
}
根据源码.设置了enable为false则监听不执行.这样可以随时控制监听.比setOnClickListener(null)要好.
解决方案三:
txt.setEnabled(false);
解决方案四:
xml里写android:clickable="true"
时间: 2024-09-11 23:02:26