Android setOnTouchListener中的While循环
我想在按下按钮时执行一些操作,在松开按钮时停止这些操作。我使用了以下代码,但它不起作用。您可以在这里查看我的代码-Android setOnTouchListener中的While循环,android,button,ontouchlistener,Android,Button,Ontouchlistener,我想在按下按钮时执行一些操作,在松开按钮时停止这些操作。我使用了以下代码,但它不起作用。您可以在这里查看我的代码- ok = (Button)findViewById(R.id.button1); ok.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { my_var=true
ok = (Button)findViewById(R.id.button1);
ok.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
my_var=true;
if (event.getAction() == MotionEvent.ACTION_DOWN) {
while(my_var) do_something();
}else if (event.getAction() == MotionEvent.ACTION_UP) {
my_var=false;
}
return true;
}
});
上述问题是否有其他解决方案。Thanx提前。要实现这一点,您必须在do\u something方法中的某个地方将我的var设置为false。我认为您需要的是一个
自动恢复按钮
基本上,它是一个扩展按钮
并添加一些预定回调(您可以调整间隔)的类,只要操作向下
运动事件
发生,这些回调就会发生
有一些实现是浮动的,但我最喜欢以下实现:
“不工作”从不帮助,请详细说明当您单击按钮时会发生什么情况??除非my\u var
最初为true
,否则将永远不会调用do\u something()
。即使它是真的
,当您释放触摸时(动作_UP
),它被设置为假
,因此下一次触摸将不起作用。@meda&@prashant patel:在while方法完成之前,它会做一些事情()。但是我想在用户释放按钮时停止它。看看这个线程(特别是AutoRepeatButton
answer),这通常是我想要实现类似这样的东西的方式:但是我想在释放按钮时将我的变量设置为false,那么我如何在do\u something()中实现它呢?我想您可以将事件作为参数传递给函数并在那里进行检查。上面给出的解决方案正在运行,但可能存在一些线程问题。那么,你能推荐其他链接吗。或者其他任何例子。不,对不起,这对我来说一直都很有效。什么样的线程问题?我正在将对象移动到那里,但有时按钮单击在那里不起作用。它一动不动。恐怕除非我看到你的解决方案,否则我无法发表评论。我觉得我已经回答了你的问题——也许其他人可以帮忙,或者你可以针对这个新问题提出一个新问题。是的。谢谢你的回答。我将它标记为accept,因为它在dat prob上工作。给你加油。