手指在按钮上移动时更改textView [英] Change textView while moving finger across buttons

查看:95
本文介绍了手指在按钮上移动时更改textView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的应用程序中,我有一个活动,其中有9个按钮和1个textView.当我在各个按钮上移动手指时,我正在使用OnTouchListener来更改textView中的文本.

In my app, I have an activity in which there are 9 buttons and 1 textView. I am making use of OnTouchListener to change the text in the textView as I move my finger accross the buttons.

这是我的活动的样子:

This is what my activity looks like:

这是我的 java 代码:

    button1.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            textView.setText("Button 1");
            return false;
        }
    });
    button2.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            textView.setText("Button 2");
            return false;
        }
    });
    button3.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            textView.setText("Button 3");
            return false;
        }
    });
    button4.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            textView.setText("Button 4");
            return false;
        }
    });
    button5.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            textView.setText("Button 5");
            return false;
        }
    });
    button6.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            textView.setText("Button 6");
            return false;
        }
    });
    button7.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            textView.setText("Button 7");
            return false;
        }
    });
    button8.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            textView.setText("Button 8");
            return false;
        }
    });
    button9.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            textView.setText("Button 9");
            return false;
        }
    });

但是此代码的问题在于,它仅获得我触摸的第一个按钮的OnTouchListener.简而言之,当我动动手指时,我首先触摸的按钮会更改textView,而其余按钮则不会.
我也在网上搜索并且stackoverflow也遇到了类似MotionEvent.ACTION_MOVE,但我不知道如何使用它,并且不确定在这种情况下是否适用.
请帮我解决这个问题!谢谢您的时间.

But the problem with this code is that it only gets the OnTouchListener of the first button I touched. In simple words, when i move my finger, the button that I touched first changes the textView while the rest of the buttons don't.
I searched on the net and stackoverflow as well and I came across something like MotionEvent.ACTION_MOVE but I don't know how to use it and I am not sure if it is applicable in this case.
Please help me solve this problem! thank you for your time.

推荐答案

您可以使用setOnClickListener或切换大小写来完成所需的操作 您可以在活动中implements OnTouchListener并使用ACTION_UP

you can use setOnClickListener or switch case for doing whatever you want either you can implements OnTouchListener on your activity and use ACTION_UP

我在这里为您做第一种方法

i am doing a first method for you here

button1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub 
             textView.setText("Button 1");          

        }
    });

button2.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub 
             textView.setText("Button 2");          

        }
    });

您可以继续执行此操作...

you can continue with this ...

这篇关于手指在按钮上移动时更改textView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆