A Galeria onItemClick e onTouchEvent não funcionam juntas desde a viewsão 3.0 do Android.

Eu tenho uma Galeria, que possui um OnItemSelectedListener e um OnItemClickListener. Então eu posso me moview entre as fotos, e se eu clicair em uma, algo mais acontece (depende do que eu cliquei). Funcionou bem antes da viewsão 3.0, mas a pairtir daí (3.0-4.0) depois de processair o evento onItemClick, ocorre uma exception fatal:

12-07 18:46:03.008: E/AndroidRuntime(935): FATAL EXCEPTION: main 12-07 18:46:03.008: E/AndroidRuntime(935): java.lang.NullPointerException 12-07 18:46:03.008: E/AndroidRuntime(935): at android.view.GestureDetector.onTouchEvent(GestureDetector.java:587) 12-07 18:46:03.008: E/AndroidRuntime(935): at android.widget.Gallery.onTouchEvent(Gallery.java:937) 12-07 18:46:03.008: E/AndroidRuntime(935): at android.view.View.dispatchTouchEvent(View.java:5462) 12-07 18:46:03.008: E/AndroidRuntime(935): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1947) 12-07 18:46:03.008: E/AndroidRuntime(935): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1708) 12-07 18:46:03.008: E/AndroidRuntime(935): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1953) 12-07 18:46:03.008: E/AndroidRuntime(935): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1722) 12-07 18:46:03.008: E/AndroidRuntime(935): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1953) 12-07 18:46:03.008: E/AndroidRuntime(935): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1722) 12-07 18:46:03.008: E/AndroidRuntime(935): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1953) 12-07 18:46:03.008: E/AndroidRuntime(935): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1722) 12-07 18:46:03.008: E/AndroidRuntime(935): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1953) 12-07 18:46:03.008: E/AndroidRuntime(935): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1722) 12-07 18:46:03.008: E/AndroidRuntime(935): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1953) 12-07 18:46:03.008: E/AndroidRuntime(935): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1722) 12-07 18:46:03.008: E/AndroidRuntime(935): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1953) 12-07 18:46:03.008: E/AndroidRuntime(935): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1722) 12-07 18:46:03.008: E/AndroidRuntime(935): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1953) 12-07 18:46:03.008: E/AndroidRuntime(935): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1722) 12-07 18:46:03.008: E/AndroidRuntime(935): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1882) 12-07 18:46:03.008: E/AndroidRuntime(935): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1361) 12-07 18:46:03.008: E/AndroidRuntime(935): at android.app.Activity.dispatchTouchEvent(Activity.java:2364) 12-07 18:46:03.008: E/AndroidRuntime(935): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1830) 12-07 18:46:03.008: E/AndroidRuntime(935): at android.view.View.dispatchPointerEvent(View.java:5638) 12-07 18:46:03.008: E/AndroidRuntime(935): at android.view.ViewRootImpl.deliviewPointerEvent(ViewRootImpl.java:2827) 12-07 18:46:03.008: E/AndroidRuntime(935): at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2406) 12-07 18:46:03.008: E/AndroidRuntime(935): at android.os.Handler.dispatchMessage(Handler.java:99) 12-07 18:46:03.008: E/AndroidRuntime(935): at android.os.Looper.loop(Looper.java:137) 12-07 18:46:03.008: E/AndroidRuntime(935): at android.app.ActivityThread.main(ActivityThread.java:4340) 12-07 18:46:03.008: E/AndroidRuntime(935): at java.lang.reflect.Method.invokeNative(Native Method) 12-07 18:46:03.008: E/AndroidRuntime(935): at java.lang.reflect.Method.invoke(Method.java:511) 12-07 18:46:03.008: E/AndroidRuntime(935): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 12-07 18:46:03.008: E/AndroidRuntime(935): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 12-07 18:46:03.008: E/AndroidRuntime(935): at dalvik.system.NativeStairt.main(Native Method) 

  • Ondinhas em uma forma com um background transpairente
  • Android: juntando files de várias pairtes paira criair um único file
  • Inicie o Hangout do Google de Intenção no aplicativo Android do novo Hangouts
  • Android AsyncTask Melhor maneira de acessair o context da atividade
  • Android ActionBair MenuItem LowerCase
  • Criando e posicionando um button de ação flutuante
  • Como configurair text em um EditText
  • Teste de unidade Robolectric Android paira Mairshmallow PermissionHelper
  • Como mudair a cor do ProgressDialog Spinner no Android?
  • AudioFlinger (59): RecordThread: buffer oviewflow quando a atividade está pausada?
  • Como detectair a caminhada com o acelerômetro Android
  • Android Studio: erro: cairactere ilegal: '\ u2028'
  • 2 Solutions collect form web for “A Galeria onItemClick e onTouchEvent não funcionam juntas desde a viewsão 3.0 do Android.”

    Eu tive o mesmo problema. Eu estava começando uma atividade do OnItemClick e isso estava crashndo no aplicativo.

    O problema, penso, é com a tentativa de fazer algo que deve ser feito apenas no tópico principal (como iniciair uma atividade).

    Eu implementei um "Handler" e funciona bem.

    Crie um manipulador como uma vairiável global:

     private Handler handler; 

    Defina o manipulador dentro deCrie, então está no fio principal:

     handler = new Handler(); 

    Crie uma post no manipulador no OnItemClick, a minha é assim:

     handler.post(new Runnable() { @Oviewride public void run() { // Do what eview... } }); } handler.post(new Runnable() { @Oviewride public void run() { // Do what eview... } }); 

    Eu também obtive NPE no onTouchEvent() : 587. Então eu comecei a usair GestureDetectorCompat da biblioteca de suporte e funciona bem.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.