2

我有一个带有 10 个按钮的应用程序。每次用户按下一个按钮时,TextView 都应该改变。如果用户改变焦点并将其手指移到右侧,到下一个按钮(没有将手指从屏幕上移开),第二个按钮应该被聚焦。

我尝试将 OnTouchListner 设置为所有按钮,但是一旦移动手指,焦点仍停留在第一个按钮上:

btn1.setOnTouchListener(new View.OnTouchListener() {

            public boolean onTouch(View v, MotionEvent event) {
                // TODO Auto-generated method stub
                txt1.settext("1");
                return false;
            }
        });

我希望你明白我的意思并能帮助我。

谢谢

编辑:

我找到了一个应用程序,这是一个视频,所以你可以想象我的意思。请注意我如何移动鼠标(在本例中为手指)并且 Boxes 改变了它的焦点:

http://www.youtube.com/watch?v=MRVFpNrBmsA&feature=youtu.be

4

1 回答 1

-1

要从你的 onTouch() 开始,你应该处理这些事件......

就像是

        public boolean onTouch(View v, MotionEvent event) {

            if(event.getAction() == MotionEvent.ACTION_HOVER_ENTER) {
               txt1.settext("1");
            } else if(event.getAction() == MotionEvent.ACTION_HOVER_EXIT){
               txt1.settext("0");
            }
            return true;
        }

Not sure if those are the proper actions to check against but it is just to give the idea.

Also I believe you should return true otherwise it means that the event wasn't processed and it gets stuck.

于 2012-08-04T21:18:50.663 回答