由android中的onclick监听器进行类强制转换异常

时间:2012-02-17 09:33:06

标签: android

我已经编写了一个代码来实现android中按钮的onclick事件。 我编写了以下行来在oncreate方法中设置监听器。 我想识别应用程序中按钮的触摸事件。我在android中获得了类强制转换异常。

mybtn [i] .setOnClickListener((OnClick Lisener)this);

对于识别ontouch事件的替代方法,我已经查看了SetKeylistener(),setonkeylistener()和setontouchlistener()方法。但我没有准确使用哪一个。

我想要实现的是TTS应该在触摸按钮时说出数字,并且在键释放时应该将该数字添加到某个文本框中。那么我应该用什么方法来完成这些事情。

3 个答案:

答案 0 :(得分:1)

你应该通过这样做来实现这个效果:

    mybtn[i].setOnTouchListener(new OnTouchListener()
    {

        @Override
        public boolean onTouch(View arg0, MotionEvent arg1)
        {
            switch (arg1.getAction())
            {
                case MotionEvent.ACTION_DOWN:
                    // Do some stuff
                    break;

                case MotionEvent.ACTION_UP:
                    // Do some stuff
                    break;
            }
            return false;
        }
    });

答案 1 :(得分:0)

如果使用setOnClickListener,请使用View.OnClickListener。

为了达到你的目的,你可以使用btn.setOnTouchListener并根据MotionEvent做一些事情,比如event.getAction = MotionEvent.ACTION_UP ......

例如:

btn.setOnTouchListener(new OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_UP) {

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

            }
            return false;
        }
    });

答案 2 :(得分:0)

在您的活动类中实现接口,您希望在按钮上收听该监听器,例如onClickListener

public class A extends Activity implments OnClickListener