如何在用户按下Android按钮时向用户提供视觉反馈?

时间:2015-05-18 16:58:16

标签: android

在我的应用程序中,我需要在2秒内按下按钮,然后触发动作。感谢这个问题(How can I get button pressed time when I holding button on)我有它的工作,但我需要用户可以看到他/她实际上是按下按钮,例如使用“加载”图标'或指示用户继续按下按钮的东西。如果他停止按下按钮,我想要加载图标'离开。

这是我的代码:

handler = new Handler();
Button myButton = (Button) findViewById(R.id.buttonId);
myButton.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {

            if (event.getAction() == MotionEvent.ACTION_DOWN) {

                Toast.makeText(Visor.this, "Hold the button for 2 sec...", Toast.LENGTH_SHORT).show();

                handler.postDelayed(run, 2000);
            } else {

                handler.removeCallbacks(run);
            }

            return true;
        }
    });

run是2秒后触发的动作)

我的问题是:是否有任何回调方法指示用户是否按下按钮?我尝试使用event.isButtonPressed(int Button),但它仅适用于API 21,我的应用适用于< 10。

谢谢。

更新:正如@Divers和@Blackbelt指出的那样,setOnTouchListener结合MotionEvent.ACTION_DOWN就是我解决这个问题所需要的。

0 个答案:

没有答案