while循环在setOnTouchListener中

时间:2014-04-12 19:55:53

标签: android button ontouchlistener

我想在按下按钮时执行某些操作,并在释放按钮时停止这些操作。我使用了以下代码,但它不起作用。你可以在这里检查我的代码 -

 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;
        }
    });

上述是否有其他替代解决方案。提前完成。

2 个答案:

答案 0 :(得分:1)

我认为你想要的是AutoRepeatButton

基本上它是一个扩展Button的类,并添加一些预定的回调(您可以调整间隔),只要ACTION_DOWN MotionEvent发生就会发生。

有一些实现浮动,但我最喜欢以下一个:

https://stackoverflow.com/a/8463940/833647

答案 1 :(得分:0)

要实现这一点,您必须在do_something方法中的某处将my_var设置为false。