Android Studio中是否存在“While-Clicking”事件处理程序?

时间:2016-02-06 09:00:14

标签: android android-studio ontouchlistener

我想在用户按下某个按钮时调用一个函数,只要按下该按钮就会无限循环,然后在用户释放按钮后中断。我可以说我正在寻找一个Button-While-Clicking事件处理程序

我确信这样的事件处理程序可能存在于大多数IDE中。 我如何在Android Studio中实现这一目标?

非常感谢为此示例任务提供示例:

虽然单击:

    // Button Clicking
    int i = 0;
    Btn.setOnClickListener(
            new Button.OnClickListener() {
                public void onClick(View v) {
                    TextOne.setText("Clicking" + i++);
                }//onClick
            }//onClickListener
    );//setOnClickListener

发布时:

    // Button Released
    Btn.setOnClickListener(
            new Button.OnClickListener() {
                public void onClick(View v) {
                    TextOne.setText("Released");
                }//onClick
            }//onClickListener
    );//setOnClickListener

...

修改 解决方案似乎是OnTouchListener()事件处理程序,我必须导入android.view.MotionEvent;使用它。

1 个答案:

答案 0 :(得分:1)

您正在寻找onTouchListener -

button.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (event.getAction() == MotionEvent.ACTION_DOWN) {
                    //Button pressed  
                    TextOne.setText("Clicking");       
                    return true;
                } 
                else if (event.getAction() == MotionEvent.ACTION_UP) {
                    //Button released
                    TextOne.setText("Released");
                    return true;
                 }
                return false;
            }
        });
当用户触摸按钮时会生成MotionEvent.ACTION_DOWN,当用户从按钮上移开触摸时会生成MotionEvent.ACTION_UP。