有一个OnTouchListener,在文本视图上设置,我希望它只在用户按下文本视图时才能工作一次,当他再次按下时不会发生任何事情。
答案 0 :(得分:1)
在onTouch中完成工作后,请执行以下操作
yourView.setOnTouchListener(null);
您的观点将不再对触控侦听器作出回应。
答案 1 :(得分:0)
创建
Boolean stuff = true;
并在你的onClickListener中检查它
public void onClick(){
if(stuff){
stuff = !stuff;
//do things
}
}
这只会执行一次在if语句中调用的方法。
答案 2 :(得分:0)
您只需将听众设置为null
:
someView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
someView.setOnTouchListener(null);
return false;
}
});
或:
someView.setOnClickListener(new View.OnClickListener() {
@Override
public void onSingleClick(View v) {
someView.setOnClickListener(null);
}
});
答案 3 :(得分:0)
textView.setOnTouchListener(new OnTouchListener {
int touchedCount = 0
boolean onTouch (View v, MotionEvent event) {
if (touchedCount < 1) {
// do whatever you want to do once here
}
}
});