我正在创建一个Android应用程序来控制我的电脑的鼠标。该应用程序有4个按钮(左,右,上,下)。在点击它们时,应用程序向PC发送一个整数,在PC上运行的Java应用程序将接收它并移动光标。长按按钮
现在我想要做的就是当用户长时间按下按钮时,应用程序必须连续发送数字到PC,直到用户释放按钮。有人请帮我做到这一点。
我正在创建一个Android应用程序来控制我的电脑的鼠标。该应用程序有4个按钮(左,右,上,下)。在点击它们时,应用程序向PC发送一个整数,在PC上运行的Java应用程序将接收它并移动光标。长按按钮
现在我想要做的就是当用户长时间按下按钮时,应用程序必须连续发送数字到PC,直到用户释放按钮。有人请帮我做到这一点。
使用OnTouchListener来收听MotionEvent.ACTION_DOWN,并且在发生这种情况时,开始向计算机发送适当的信号,例如每0.5秒。在MotionEvent.ACTION_UP
之后停止这样做。
编辑:
public class MainActivity extends Activity implements OnTouchListener {
private TextView TV;
private Thread move_curser;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TV = (TextView) findViewById(R.id.TV1);
TV.setOnTouchListener(this);
}
public boolean onTouch(View v, MotionEvent event) {
boolean isPressed = event.getAction() == MotionEvent.ACTION_DOWN;
boolean isReleased = event.getAction() == MotionEvent.ACTION_UP;
if(isPressed) {
move_curser = new Thread(new move_curser());
move_curser.start();
your_methode();
return true;
} else if(isReleased){
move_curser.interrupt();
return true;
}
return false;
}
public class move_curser implements Runnable {
public void run() {
int time = 500;
try {
Thread.sleep(time);
} catch (InterruptedException e) {
interrupt();
}
while(true){
your_methode();
try {
Thread.sleep(50);
} catch (InterruptedException e) {
interrupt();
}
}
}
}
}
我尝试过这种代码。问题是isPressed始终是真的,应用程序会崩溃。 –
@ Anoopss Golden 我认为那么你必须使用一个新的线程。 中断()方法是否适合你..? – Alrick
它也没有为我工作...光标仍然无限期地移动....它不会停止,即使按钮释放后。 –