Android OnTouchListener操作是否有效?
这是我的密码:Android OnTouchListener操作是否有效?,android,android-view,Android,Android View,这是我的密码: mSendButton.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch(event.getAction()) { case MotionEvent.ACTION_DOWN:
mSendButton.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
// Send bluetooth data
break;
case MotionEvent.ACTION_UP:
// Stop sending
break;
}
return false;
}
});
代码正在执行向下操作,但当我按住按钮时,它只发送一次数据我希望它在我按住按钮时继续发送数据,然后在我松开按钮时停止。有人能帮我吗?玩一些游戏,比如while(flag){}loop。当发生任何事件操作时,将标志设置为true以异步方式连续运行循环(在单独的线程中运行),当操作设置为false以停止在线程中运行循环时,将标志设置为false
mSendButton.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
// Send bluetooth data
thread.start();
flag = true;
break;
case MotionEvent.ACTION_UP:
// Stop sending
flag = false;
break;
}
return false;
}
});
//RUN THE BELOW FUNCTION IN A THREAD:
void funtion(){
while(flag){
//enter the code here
}
}
创建一个while循环,按下时开始,抬起时停止。使用while循环将阻止主UI线程。所以你可以在动作中创建一个新的线程来完成这项工作,并在动作结束时停止,这可能是一个愚蠢的问题,但我真的不知道该放在哪里it@DerryPratama您不理解的原因是因为您不知道操作的含义,您应该花一些时间阅读您使用的API,这样你就可以熟悉你在做什么。建议阅读关于MotionEvent的内容。