Android 的TextView的点击事件如何去除

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"

public void setOnClickListener(OnClickListener l) {
if (!isClickable()) {
setClickable(true);
}
getListenerInfo().mOnClickListener = l;
}
这是因为你注册了onClick事件, clickable后面不管你怎么设置应该都没效,因为OnClickListener始终存在,建议调用setOnClickListener(null);试试