触摸事件在Android的画布错误 [英] On Touch Event in Canvas Error in Android

查看:112
本文介绍了触摸事件在Android的画布错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

说明:

我创建的视图,我不得不使用画布绘制的矩形,并实施了触摸事件这一观点。

我想那一抹推出新的活动。

问题:

现在的问题是,每当我接触到矩形强制关闭错误弹出。

下面是PickCardView.java

 公共类PickCardView扩展视图
    {
    私人涂料mCanvasPaint;    私人矩形mScreenSize =新的矩形();    私人矩形mCardSize =新的矩形();
    私人诠释mCardCap;    私人卡MCards;    公共PickCardView(上下文的背景下)
    {
        超级(上下文);        mCanvasPaint =新的油漆();
        mCanvasPaint.setColor(0xFF228B22); //绿色背景
        mCanvasPaint.setAntiAlias​​(假);
        mCanvasPaint.setFilterBitmap(假);
    }    @覆盖
    保护无效onSizeChanged(INT W,INT小时,INT oldw,诠释oldh)
    {
        super.onSizeChanged(W,H,oldw,oldh);        //存储当前的屏幕尺寸
        mScreenSize.set(0,0,W,H);        //计算卡和甲板的尺寸和位置
        INT CW = W / 11;
        mCardSize.set(0,0,CW,(int)的(CW * 1.5));
        Log.v(卡大小,mCardSize.toString());        INT FREESIZE = W -​​ CW * 7; // 117
        mCardCap =空闲容量/(6 + 4 * 2); // 5        INT CY =(INT)(mScreenSize.height()* 0.35);        //中卡持有人
        MCards =新卡(Card.CardType.PickDeck,mCardCap * 2 + mCardSize.width()* 4 - 15,CY - 20,mCardSize.width()+ 60,mCardSize.height()+ 60);
    }    @覆盖
    公共无效的onDraw(帆布油画)
    {
        mCanvasPaint.setStyle(Style.FILL);
        canvas.drawRect(mScreenSize,mCanvasPaint);        MCards.doDraw(画布);
    }    @覆盖
    公共布尔onTouchEvent(MotionEvent事件)
    {
        INT行动= event.getAction();        如果(动作== MotionEvent.ACTION_DOWN)
        {
            INT X =(int)的event.getX();
            INT Y =(int)的event.getY();            卡卡= getCardUnderTouch(X,Y);            如果(卡!= NULL)
            {
                意图I =新意图(NULL,BuildWord.class);
                startActivity(ⅰ);
            }
        }        返回true;
    }    私人无效startActivity(意向I)
    {
        //意图I1 =新意图(NULL,BuildWord.class);
    }    私人卡getCardUnderTouch(INT X,int y)对
    {
        卡RET = NULL;        如果(MCards.isUnderTouch(X,Y))
        {
            返回MCards;
        }        返回RET;
    }
}

这是在logcat中所示,当我接触到的矩形错误:

  21 11-13:07:12.037:E / InputEventReceiver(712):异常调度输入事件。
11-13 21:07:12.037:E /的MessageQueue-JNI(712):在异常回调的MessageQueue:handleReceiveCallback
11-13 21:07:12.138:E /的MessageQueue-JNI(712):显示java.lang.NullPointerException
11-13 21:07:12.138:E /的MessageQueue-JNI(712):在android.content.ComponentName<&初始化GT;(ComponentName.java:75)
11-13 21:07:12.138:E /的MessageQueue-JNI(712):在android.content.Intent<&初始化GT;(Intent.java:330​​1)
11-13 21:07:12.138:E /的MessageQueue-JNI(712):在apk.gameshufflewords.PickCardView.onTouchEvent(PickCardView.java:79)
11-13 21:07:12.138:E /的MessageQueue-JNI(712):在android.view.View.dispatchTouchEvent(View.java:7127)
11-13 21:07:12.138:E /的MessageQueue-JNI(712):在android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-13 21:07:12.138:E /的MessageQueue-JNI(712):在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1877)
11-13 21:07:12.138:E /的MessageQueue-JNI(712):在android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-13 21:07:12.138:E /的MessageQueue-JNI(712):在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1877)
11-13 21:07:12.138:E /的MessageQueue-JNI(712):在android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-13 21:07:12.138:E /的MessageQueue-JNI(712):在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1877)
11-13 21:07:12.138:E /的MessageQueue-JNI(712):在com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1925)
11-13 21:07:12.138:E /的MessageQueue-JNI(712):在com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1379)
11-13 21:07:12.138:E /的MessageQueue-JNI(712):在android.app.Activity.dispatchTouchEvent(Activity.java:2396)
11-13 21:07:12.138:E /的MessageQueue-JNI(712):在com.android.internal.policy.impl.PhoneWindow $ DecorView.dispatchTouchEvent(PhoneWindow.java:1873)
11-13 21:07:12.138:E /的MessageQueue-JNI(712):在android.view.View.dispatchPointerEvent(View.java:7307)
11-13 21:07:12.138:E /的MessageQueue-JNI(712):在android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3174)
11-13 21:07:12.138:E /的MessageQueue-JNI(712):在android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3119)
11-13 21:07:12.138:E /的MessageQueue-JNI(712):在android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4155)
11-13 21:07:12.138:E /的MessageQueue-JNI(712):在android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4134)
11-13 21:07:12.138:E /的MessageQueue-JNI(712):在android.view.ViewRootImpl $ WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:4226)
11-13 21:07:12.138:E /的MessageQueue-JNI(712):在android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:171)
11-13 21:07:12.138:E /的MessageQueue-JNI(712):在android.os.MessageQueue.nativePollOnce(本机方法)
11-13 21:07:12.138:E /的MessageQueue-JNI(712):在android.os.MessageQueue.next(MessageQueue.java:125)
11-13 21:07:12.138:E /的MessageQueue-JNI(712):在android.os.Looper.loop(Looper.java:124)
11-13 21:07:12.138:E /的MessageQueue-JNI(712):在android.app.ActivityThread.main(ActivityThread.java:4745)
11-13 21:07:12.138:E /的MessageQueue-JNI(712):在java.lang.reflect.Method.invokeNative(本机方法)
11-13 21:07:12.138:E /的MessageQueue-JNI(712):在java.lang.reflect.Method.invoke(Method.java:511)
11-13 21:07:12.138:E /的MessageQueue-JNI(712):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:786)
11-13 21:07:12.138:E /的MessageQueue-JNI(712):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-13 21:07:12.138:E /的MessageQueue-JNI(712):在dalvik.system.NativeStart.main(本机方法)
11-13 21:07:12.167:D / AndroidRuntime(712):关闭VM
11-13 21:07:12.167:W / dalvikvm(712):主题ID = 1:螺纹未捕获的异常退出(组= 0x40a13300)
11-13 21:07:12.267:E / AndroidRuntime(712):致命异常:主要
11-13 21:07:12.267:E / AndroidRuntime(712):显示java.lang.NullPointerException
11-13 21:07:12.267:E / AndroidRuntime(712):在android.content.ComponentName<&初始化GT;(ComponentName.java:75)
11-13 21:07:12.267:E / AndroidRuntime(712):在android.content.Intent<&初始化GT;(Intent.java:330​​1)
11-13 21:07:12.267:E / AndroidRuntime(712):在apk.gameshufflewords.PickCardView.onTouchEvent(PickCardView.java:79)
11-13 21:07:12.267:E / AndroidRuntime(712):在android.view.View.dispatchTouchEvent(View.java:7127)
11-13 21:07:12.267:E / AndroidRuntime(712):在android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-13 21:07:12.267:E / AndroidRuntime(712):在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1877)
11-13 21:07:12.267:E / AndroidRuntime(712):在android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-13 21:07:12.267:E / AndroidRuntime(712):在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1877)
11-13 21:07:12.267:E / AndroidRuntime(712):在android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-13 21:07:12.267:E / AndroidRuntime(712):在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1877)
11-13 21:07:12.267:E / AndroidRuntime(712):在com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1925)
11-13 21:07:12.267:E / AndroidRuntime(712):在com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1379)
11-13 21:07:12.267:E / AndroidRuntime(712):在android.app.Activity.dispatchTouchEvent(Activity.java:2396)
11-13 21:07:12.267:E / AndroidRuntime(712):在com.android.internal.policy.impl.PhoneWindow $ DecorView.dispatchTouchEvent(PhoneWindow.java:1873)
11-13 21:07:12.267:E / AndroidRuntime(712):在android.view.View.dispatchPointerEvent(View.java:7307)
11-13 21:07:12.267:E / AndroidRuntime(712):在android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3174)
11-13 21:07:12.267:E / AndroidRuntime(712):在android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3119)
11-13 21:07:12.267:E / AndroidRuntime(712):在android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4155)
11-13 21:07:12.267:E / AndroidRuntime(712):在android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4134)
11-13 21:07:12.267:E / AndroidRuntime(712):在android.view.ViewRootImpl $ WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:4226)
11-13 21:07:12.267:E / AndroidRuntime(712):在android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:171)
11-13 21:07:12.267:E / AndroidRuntime(712):在android.os.MessageQueue.nativePollOnce(本机方法)
11-13 21:07:12.267:E / AndroidRuntime(712):在android.os.MessageQueue.next(MessageQueue.java:125)
11-13 21:07:12.267:E / AndroidRuntime(712):在android.os.Looper.loop(Looper.java:124)
11-13 21:07:12.267:E / AndroidRuntime(712):在android.app.ActivityThread.main(ActivityThread.java:4745)
11-13 21:07:12.267:E / AndroidRuntime(712):在java.lang.reflect.Method.invokeNative(本机方法)
11-13 21:07:12.267:E / AndroidRuntime(712):在java.lang.reflect.Method.invoke(Method.java:511)
11-13 21:07:12.267:E / AndroidRuntime(712):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:786)
11-13 21:07:12.267:E / AndroidRuntime(712):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-13 21:07:12.267:E / AndroidRuntime(712):在dalvik.system.NativeStart.main(本机方法)


解决方案

更改为onTouchEvent

  @覆盖
公共布尔onTouchEvent(MotionEvent事件)
{
INT行动= event.getAction();如果(动作== MotionEvent.ACTION_DOWN)
{
    INT X =(int)的event.getX();
    INT Y =(int)的event.getY();    卡卡= getCardUnderTouch(X,Y);    如果(卡!= NULL)
    {
        上下文的背景下=的getContext();
        意图I =新意图(背景下,BuildWord.class);
        context.startActivity(ⅰ);
    }
}返回true;
}

删除您startActivity方法以及

Description:

I created View where i had drawn rectangle using canvas and also implemented On Touch Event in that View.

I want that touch to launch new activity.

Problem:

Now the problem is whenever i touch that rectangle "Force Close" error is popping up.

Here is the PickCardView.java

  public class PickCardView extends View
    {   
    private Paint mCanvasPaint;

    private Rect mScreenSize = new Rect();

    private Rect mCardSize = new Rect();
    private int mCardCap;

    private Card MCards;

    public PickCardView(Context context) 
    {
        super(context);

        mCanvasPaint = new Paint();
        mCanvasPaint.setColor(0xFF228B22); // Green background
        mCanvasPaint.setAntiAlias(false);
        mCanvasPaint.setFilterBitmap(false);
    }

    @Override
    protected void onSizeChanged(int w, int h, int oldw, int oldh) 
    {
        super.onSizeChanged(w, h, oldw, oldh);

        // Store current screen size
        mScreenSize.set(0, 0, w, h);

        // Calculate card and decks sizes and positions
        int cw = w / 11;
        mCardSize.set(0, 0, cw, (int) (cw * 1.5));
        Log.v("card size", mCardSize.toString());

        int freeSize = w - cw * 7; //117
        mCardCap = freeSize / (6 + 4 * 2);//5

        int cy = (int) (mScreenSize.height() * 0.35);

        //MIDDLE CARD HOLDER
        MCards = new Card(Card.CardType.PickDeck, mCardCap * 2 + mCardSize.width()*4 - 15, cy - 20, mCardSize.width()+60, mCardSize.height()+60);
    }

    @Override
    public void onDraw(Canvas canvas) 
    {
        mCanvasPaint.setStyle(Style.FILL);
        canvas.drawRect(mScreenSize, mCanvasPaint);

        MCards.doDraw(canvas);     
    }

    @Override
    public boolean onTouchEvent(MotionEvent event)
    {
        int action = event.getAction();

        if (action == MotionEvent.ACTION_DOWN) 
        {
            int x = (int) event.getX();
            int y = (int) event.getY();

            Card card = getCardUnderTouch(x, y);

            if(card != null)
            {
                Intent i = new Intent(null, BuildWord.class);  
                startActivity(i);
            }
        }

        return true;
    }

    private void startActivity(Intent i) 
    {
        //Intent i1 = new Intent(null, BuildWord.class);        
    }

    private Card getCardUnderTouch(int x, int y) 
    {
        Card ret = null;

        if (MCards.isUnderTouch(x, y)) 
        {
            return MCards;
        }

        return ret;
    }
}

This is error shown in logcat when i touch that rectangle:

11-13 21:07:12.037: E/InputEventReceiver(712): Exception dispatching input event.
11-13 21:07:12.037: E/MessageQueue-JNI(712): Exception in MessageQueue callback: handleReceiveCallback
11-13 21:07:12.138: E/MessageQueue-JNI(712): java.lang.NullPointerException
11-13 21:07:12.138: E/MessageQueue-JNI(712):    at android.content.ComponentName.<init>(ComponentName.java:75)
11-13 21:07:12.138: E/MessageQueue-JNI(712):    at android.content.Intent.<init>(Intent.java:3301)
11-13 21:07:12.138: E/MessageQueue-JNI(712):    at apk.gameshufflewords.PickCardView.onTouchEvent(PickCardView.java:79)
11-13 21:07:12.138: E/MessageQueue-JNI(712):    at android.view.View.dispatchTouchEvent(View.java:7127)
11-13 21:07:12.138: E/MessageQueue-JNI(712):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-13 21:07:12.138: E/MessageQueue-JNI(712):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1877)
11-13 21:07:12.138: E/MessageQueue-JNI(712):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-13 21:07:12.138: E/MessageQueue-JNI(712):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1877)
11-13 21:07:12.138: E/MessageQueue-JNI(712):    at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-13 21:07:12.138: E/MessageQueue-JNI(712):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1877)
11-13 21:07:12.138: E/MessageQueue-JNI(712):    at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1925)
11-13 21:07:12.138: E/MessageQueue-JNI(712):    at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1379)
11-13 21:07:12.138: E/MessageQueue-JNI(712):    at android.app.Activity.dispatchTouchEvent(Activity.java:2396)
11-13 21:07:12.138: E/MessageQueue-JNI(712):    at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1873)
11-13 21:07:12.138: E/MessageQueue-JNI(712):    at android.view.View.dispatchPointerEvent(View.java:7307)
11-13 21:07:12.138: E/MessageQueue-JNI(712):    at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3174)
11-13 21:07:12.138: E/MessageQueue-JNI(712):    at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3119)
11-13 21:07:12.138: E/MessageQueue-JNI(712):    at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4155)
11-13 21:07:12.138: E/MessageQueue-JNI(712):    at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4134)
11-13 21:07:12.138: E/MessageQueue-JNI(712):    at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:4226)
11-13 21:07:12.138: E/MessageQueue-JNI(712):    at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:171)
11-13 21:07:12.138: E/MessageQueue-JNI(712):    at android.os.MessageQueue.nativePollOnce(Native Method)
11-13 21:07:12.138: E/MessageQueue-JNI(712):    at android.os.MessageQueue.next(MessageQueue.java:125)
11-13 21:07:12.138: E/MessageQueue-JNI(712):    at android.os.Looper.loop(Looper.java:124)
11-13 21:07:12.138: E/MessageQueue-JNI(712):    at android.app.ActivityThread.main(ActivityThread.java:4745)
11-13 21:07:12.138: E/MessageQueue-JNI(712):    at java.lang.reflect.Method.invokeNative(Native Method)
11-13 21:07:12.138: E/MessageQueue-JNI(712):    at java.lang.reflect.Method.invoke(Method.java:511)
11-13 21:07:12.138: E/MessageQueue-JNI(712):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
11-13 21:07:12.138: E/MessageQueue-JNI(712):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-13 21:07:12.138: E/MessageQueue-JNI(712):    at dalvik.system.NativeStart.main(Native Method)
11-13 21:07:12.167: D/AndroidRuntime(712): Shutting down VM
11-13 21:07:12.167: W/dalvikvm(712): threadid=1: thread exiting with uncaught exception (group=0x40a13300)
11-13 21:07:12.267: E/AndroidRuntime(712): FATAL EXCEPTION: main
11-13 21:07:12.267: E/AndroidRuntime(712): java.lang.NullPointerException
11-13 21:07:12.267: E/AndroidRuntime(712):  at android.content.ComponentName.<init>(ComponentName.java:75)
11-13 21:07:12.267: E/AndroidRuntime(712):  at android.content.Intent.<init>(Intent.java:3301)
11-13 21:07:12.267: E/AndroidRuntime(712):  at apk.gameshufflewords.PickCardView.onTouchEvent(PickCardView.java:79)
11-13 21:07:12.267: E/AndroidRuntime(712):  at android.view.View.dispatchTouchEvent(View.java:7127)
11-13 21:07:12.267: E/AndroidRuntime(712):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-13 21:07:12.267: E/AndroidRuntime(712):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1877)
11-13 21:07:12.267: E/AndroidRuntime(712):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-13 21:07:12.267: E/AndroidRuntime(712):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1877)
11-13 21:07:12.267: E/AndroidRuntime(712):  at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2176)
11-13 21:07:12.267: E/AndroidRuntime(712):  at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1877)
11-13 21:07:12.267: E/AndroidRuntime(712):  at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1925)
11-13 21:07:12.267: E/AndroidRuntime(712):  at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1379)
11-13 21:07:12.267: E/AndroidRuntime(712):  at android.app.Activity.dispatchTouchEvent(Activity.java:2396)
11-13 21:07:12.267: E/AndroidRuntime(712):  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1873)
11-13 21:07:12.267: E/AndroidRuntime(712):  at android.view.View.dispatchPointerEvent(View.java:7307)
11-13 21:07:12.267: E/AndroidRuntime(712):  at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:3174)
11-13 21:07:12.267: E/AndroidRuntime(712):  at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:3119)
11-13 21:07:12.267: E/AndroidRuntime(712):  at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:4155)
11-13 21:07:12.267: E/AndroidRuntime(712):  at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:4134)
11-13 21:07:12.267: E/AndroidRuntime(712):  at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:4226)
11-13 21:07:12.267: E/AndroidRuntime(712):  at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:171)
11-13 21:07:12.267: E/AndroidRuntime(712):  at android.os.MessageQueue.nativePollOnce(Native Method)
11-13 21:07:12.267: E/AndroidRuntime(712):  at android.os.MessageQueue.next(MessageQueue.java:125)
11-13 21:07:12.267: E/AndroidRuntime(712):  at android.os.Looper.loop(Looper.java:124)
11-13 21:07:12.267: E/AndroidRuntime(712):  at android.app.ActivityThread.main(ActivityThread.java:4745)
11-13 21:07:12.267: E/AndroidRuntime(712):  at java.lang.reflect.Method.invokeNative(Native Method)
11-13 21:07:12.267: E/AndroidRuntime(712):  at java.lang.reflect.Method.invoke(Method.java:511)
11-13 21:07:12.267: E/AndroidRuntime(712):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
11-13 21:07:12.267: E/AndroidRuntime(712):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-13 21:07:12.267: E/AndroidRuntime(712):  at dalvik.system.NativeStart.main(Native Method)

解决方案

Change onTouchEvent to

@Override
public boolean onTouchEvent(MotionEvent event)
{
int action = event.getAction();

if (action == MotionEvent.ACTION_DOWN) 
{
    int x = (int) event.getX();
    int y = (int) event.getY();

    Card card = getCardUnderTouch(x, y);

    if(card != null)
    {
        Context context = getContext();
        Intent i = new Intent(context, BuildWord.class);  
        context.startActivity(i);
    }
}

return true;
}

remove your startActivity method as well

这篇关于触摸事件在Android的画布错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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