Good afternoon, I try to calculate the item I clicked on OnTouchEvent. Wrote the following algorithm.

case MotionEvent.ACTION_DOWN:

x = (int) event.getX(); y = (int) event.getY(); int pos[] = new int[2]; v.getLocationOnScreen( pos ); ListView list = (ListView) findViewById( R.id.list ); int fpos[] = new int[2]; int f = list.getFirstVisiblePosition(); list.getChildAt( f ).getLocationOnScreen( fpos ); int res = fpos[1] - pos[1]; for ( int i = 0; i < f; i++ ) { res -= list.getChildAt( i ).getHeight(); } int q = 0; for ( int i = f; i < list.getLastVisiblePosition() && res y; i++ ) { q = i; res += list.getChildAt( i ).getHeight(); } Log.i( "asd", "" + ( q ) ); break; 

Actually, an error occurs on this line res + = list.getChildAt (i) .getHeight () ;. Log:

07-31 14: 14: 49.779: E / AndroidRuntime (15641): FATAL EXCEPTION: main 07-31 14: 14: 49.779: E / AndroidRuntime (15641): java.lang.NullPointerException 07-31 14: 14: 49.779: E / AndroidRuntime (15641): at en.qbit.vox2box.MainActivity.onTouch (MainActivity.java:213) 07-31 14: 14: 49.779: E / AndroidRuntime (15641): at android.view.View.dispatchTouchEvent (View .java: 5544) 07-31 14: 14: 49.779: E / AndroidRuntime (15641): at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:1951) 07-31 14: 14: 49.779: E / AndroidRuntime (15641 ): at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:1712) 07-31 14: 14: 49.779: E / AndroidRuntime (15641): at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:1957) 07- 31 14: 14: 49.779: E / AndroidRuntime (15641): at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:1684) 07-31 14: 14: 49.779: E / AndroidRuntime (15641): at android.view. ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:1957) 07-31 14: 14: 49.779: E / AndroidRuntime (15641): at android.view .ViewGroup.dispatchTouchEvent (ViewGroup.java:1684) 07-31 14: 14: 49.779: E / AndroidRuntime (15641): at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:1957) 07-31 14: 14: 49.779 : E / AndroidRuntime (15641): at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:1684) 07-31 14: 14: 49.779: E / AndroidRuntime (15641): at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup. java: 1957) 07-31 14: 14: 49.779: E / AndroidRuntime (15641): at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:1684) 07-31 14: 14: 49.779: E / AndroidRuntime (15641) : at android.view.ViewGroup.dispatchTransformedTouchEvent (ViewGroup.java:1957) 07-31 14: 14: 49.779: E / AndroidRuntime (15641): at android.view.ViewGroup.dispatchTouchEvent (ViewGroup.java:1684) 07-31 14: 14: 49.779: E / AndroidRuntime (15641): at com.android.internal.policy.impl.PhoneWindow $ DecorView.superDispatchTouchEvent (PhoneWindow.java:1912) 07-31 14: 14: 49.779: E / AndroidRuntime (15641 ): at com.android.internal.policy.impl.PhoneWindow.superDi spatchTouchEvent (PhoneWindow.java:1371) 07-31 14: 14: 49.779: E / AndroidRuntime (15641): at android.app.Activity.dispatchTouchEvent (Activity.java:2364) 07-31 14: 14: 49.779: E / AndroidRuntime (15641): at com.android.internal.policy.impl.PhoneWindow $ DecorView.dispatchTouchEvent (PhoneWindow.java:1860) 07-31 14: 14: 49.779: E / AndroidRuntime (15641): at android.view.View .dispatchPointerEvent (View.java Atta729) 07-31 14: 14: 49.779: E / AndroidRuntime (15641): at android.view.ViewRootImpl.deliverPointerEvent (ViewRootImpl.java:2960) 07-31 14: 14: 49.779: E / AndroidRuntime (15641): at android.view. 845) 07-31 14: 14: 49.779: E / AndroidRuntime (15641): at android.view.ViewRootImpl.handleMessage (ViewRootImpl.java:2478) 07-31 14: 14: 49.779: E / AndroidRuntime (15641): at android.os.Handler.dispatchMessage (Handler.java:99) 07-31 14: 14: 49.779: E / AndroidRuntime (15641): a t android.os.Looper.loop (Looper.java:137) 07-31 14: 14: 49.779: E / AndroidRuntime (15641): at android.app.ActivityThread.main (ActivityThread.java:4424) 07-31 14 : 14: 49.779: E / AndroidRuntime (15641): at java.lang.reflect.Method.invokeNative (Native Method) 07-31 14: 14: 49.779: E / AndroidRuntime (15641): at java.lang.reflect.Method .invoke (Method.java Lower11) 07-31 14: 14: 49.779: E / AndroidRuntime (15641): at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:787) 07-31 14 : 14: 49.779: E / AndroidRuntime (15641): at com.android.internal.os.ZygoteInit.main (ZygoteInit.javainter54) 07-31 14: 14: 49.779: E / AndroidRuntime (15641): at dalvik. system.NativeStart.main (Native Method)

  • PS crashes not always, but when scrolling through the list. - Wasted

1 answer 1

ListView getChildAt returning null for visible children