Android TextVIew在按钮保持按下状态时滚动

Android TextVIew在按钮保持按下状态时滚动,android,Android,当按钮处于按下状态时,我想滚动文本视图。只要用户松开按钮,我就想停止滚动。我正在使用按钮上的setOnTouchListener。但我无法做到这一点。任何人都可以帮助我和分享一些代码来做到这一点 arrow_up.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) {

按钮处于按下状态时,我想滚动
文本视图
。只要用户松开
按钮
,我就想停止滚动。我正在使用按钮上的
setOnTouchListener
。但我无法做到这一点。任何人都可以帮助我和分享一些代码来做到这一点

arrow_up.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (event.getAction() == MotionEvent.ACTION_DOWN) {
                    lastDown = System.currentTimeMillis();
                    System.out.println(System.currentTimeMillis());
                flag = true;
                method();
                } else if (event.getAction() == MotionEvent.ACTION_UP) {
                    System.out.println(System.currentTimeMillis() - lastDown);
                    flag = false;
                    method();
                }
                return false;
            }
        });

public void method() {
        while(flag == true){

            try {
                Thread.sleep(500);
                System.out.println("Flag === " + flag);
                tv.scrollBy(0, -20);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        }

您可以通过为按钮创建OnFocusChangeListener来实现这一点

mButton.setOnFocusChangeListener(new View.OnFocusChangeListener() 
        { 
            @Override 
            public void onFocusChange(View v, boolean hasFocus) 
            { 
                if (hasFocus) 
                { 
                    //code
                }
                else
                {
                    //code
                }
            } 
        });

您可以通过为按钮创建OnFocusChangeListener来实现这一点

mButton.setOnFocusChangeListener(new View.OnFocusChangeListener() 
        { 
            @Override 
            public void onFocusChange(View v, boolean hasFocus) 
            { 
                if (hasFocus) 
                { 
                    //code
                }
                else
                {
                    //code
                }
            } 
        });