1

次の例外が発生します。

E/AndroidRuntime(31245): java.lang.IllegalArgumentException: pointerIndex out of range
E/AndroidRuntime(31245):        at android.view.MotionEvent.nativeGetAxisValue(Native Method)
E/AndroidRuntime(31245):        at android.view.MotionEvent.getY(MotionEvent.java:1564)
E/AndroidRuntime(31245):        at android.widget.ScrollView.onTouchEvent(ScrollView.java:628)
E/AndroidRuntime(31245):        at android.view.View.dispatchTouchEvent(View.java:4626)
E/AndroidRuntime(31245):        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1554)
E/AndroidRuntime(31245):        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1320)
E/AndroidRuntime(31245):        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1560)
E/AndroidRuntime(31245):        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1333)
E/AndroidRuntime(31245):        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1560)
E/AndroidRuntime(31245):        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1333)
E/AndroidRuntime(31245):        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1560)
E/AndroidRuntime(31245):        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1333)
E/AndroidRuntime(31245):        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1560)
E/AndroidRuntime(31245):        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1333)
E/AndroidRuntime(31245):        at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1560)
E/AndroidRuntime(31245):        at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1333)
E/AndroidRuntime(31245):        at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1862)
E/AndroidRuntime(31245):        at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1286)
E/AndroidRuntime(31245):        at android.app.Activity.dispatchTouchEvent(Activity.java:2315)
E/AndroidRuntime(31245):        at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1835)
E/AndroidRuntime(31245):        at android.view.View.dispatchPointerEvent(View.java:4694)
E/AndroidRuntime(31245):        at android.view.ViewRoot.deliverPointerEvent(ViewRoot.java:2419)
E/AndroidRuntime(31245):        at android.view.ViewRoot.handleMessage(ViewRoot.java:2080)
E/AndroidRuntime(31245):        at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(31245):        at android.os.Looper.loop(Looper.java:132)
E/AndroidRuntime(31245):        at android.app.ActivityThread.main(ActivityThread.java:4126)
E/AndroidRuntime(31245):        at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(31245):        at java.lang.reflect.Method.invoke(Method.java:491)
E/AndroidRuntime(31245):        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)
E/AndroidRuntime(31245):        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)

単純に 2 本の指を置いて、短い距離ドラッグする場合。アプリケーションが停止し、存在します。以下にコードを掲載しています。このコードのチャンクは、ビューの ontouchlistener を処理する唯一の部分です。

ScrollView scrollView = (ScrollView) findViewById(R.id.ScrollView11);
        scrollView.setOnTouchListener(textIncreaseListener);
    }

    private OnTouchListener textIncreaseListener = new OnTouchListener() {

        public boolean onTouch(View v, MotionEvent event) {
            int count = event.getPointerCount();
            if(count == 2){
                Log.d(TAG, "2 pointers");
                return true;
            }
            return false;
        }
    };

何か助けはありますか?

4

1 に答える 1

0

問題は event.getPointerCount() にあります。この行を try catch ブロックに入れるか、単にログを追加すると、それが見つかります。このscrollViewで正確に何をしたいのですか。

于 2012-09-11T11:37:52.050 に答える