android - Android 中的 ACTION_DOWN 事件无法循环

标签 android events

只要拇指在我的 ImageView 上,我就想循环执行一些连续的任务。一旦竖起大拇指,我想停止这项工作。为此,我在 ACTION_DOWN 和 ACTION_UP 上设置了一个标志,我正在取消该标志,以便循环可以停止。但是我的循环变得无限了。此外,Toasts 在循环时不会出现。任何帮助将不胜感激。谢谢!!

      ivThumb.setOnTouchListener(new View.OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    if (event.getAction() == MotionEvent.ACTION_DOWN) {
                        Toast.makeText(c, "action down", Toast.LENGTH_SHORT).show();
                        ivCharger.setVisibility(View.VISIBLE);
                        tvCharging.setVisibility(View.VISIBLE);
                        flag = true;
    //                    while (flag){
    //                        Toast.makeText(c, "hello", Toast.LENGTH_SHORT).show();
    //
    //                    }

                    }
                    else if (event.getAction() == MotionEvent.ACTION_MOVE){
                        Toast.makeText(c, "move", Toast.LENGTH_SHORT).show();
                    }
                    else if (event.getAction() == MotionEvent.ACTION_UP) {
                        Toast.makeText(c, "aCTION UP", Toast.LENGTH_SHORT).show();
                        flag = false;
                        ivCharger.setVisibility(View.GONE);
                        tvCharging.setVisibility(View.GONE);
                        //ivBattery.setImageResource(R.drawable.orange);
                    }
 return true;
            }
        });

最佳答案

使用开关并添加setPressed参数,

switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                ivThumb.setPressed(true);
                //Your Function
                break;

            case MotionEvent.ACTION_MOVE:
                //Your Function
                break;

            case MotionEvent.ACTION_UP:
                //Your Function
                ivThumb.setPressed(false);
                invalidate();
                break;

这应该可以解决问题。我建议调用一个函数并在那里处理 toast 。

编辑: 因为,@Chetan 指出你返回的应该是 true 才能使 onTouch 工作。

关于android - Android 中的 ACTION_DOWN 事件无法循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42364406/

相关文章:

android - Canvas.drawTextOnPath(...) 不适用于 Lollipop

android - 用于 retrofit 和最新版本 okhttp 的 build.gradle 依赖项

java - 是否可以让 Spring ApplicationListener 监听 2 种或更多类型的事件?

java - 如何确保按钮上的 Fxml 方法在监听器之前被调用?

javascript - 未捕获的类型错误 : Cannot set property 'onclick' of null

android - 使用 firebase 函数问题的 cordova fcm 推送通知

java - 回收适配器白化中行的替代背景颜色会破坏动画

android - 如何在android中创建聊天应用程序?

events - 在 XML-RPC 或 SOAP 中实现回调

events - AppleScript 事件监听