2016-07-12 3 views
2

BaseListapter 클래스를 사용하는 사용자 지정 listView가 있습니다. 그리고 배열의 HashMaps 목록이 있습니다. 이러한 Hashmaps (String, Object)에는 비트 맵과 일부 문자열 (HTML 태그가있는 문자열)이 포함되어 있습니다.다음 페이지로 이동할 수 없습니다.

내 의도 코드 또는 putExtra ("String", "String")에 putExtra를 사용하지 않으면 OnItemClickListener 작업이 잘 작동합니다. 그러나 putExtra에서 hashMap을로드하면 다음 페이지로 이동하는 대신 이전 페이지로 이동합니다. 그리고 위치가 1이면 아무 문제없이 다음 페이지로 이동한다는 것은 어색한 것입니다. 그렇지 않으면 (0,2,3,4,5,6 ..) 이전 페이지와 디버깅 모드로 돌아갑니다. performItemClick 액션에서 mOnItemClickListener는 AdapterView.java에서 null을 반환합니다.

여기 내 코드입니다 :

// Menu Action 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     Intent intent = new Intent(ServicesAndProducts.this, ServicesAndProductsDetail.class); 
     HashMap<String, Object> map = servicesAndProductsList.get(position); 
     intent.putExtra("SelectedMap", map); 
     //intent.putExtra("String", "Esra"); // is working 

     //Bundle extras = new Bundle(); 
     //extras.putSerializable("SelectedMap", servicesAndProductsList.get(position)); 
     //extras.putString("Title", title); 
     //intent.putExtras(extras); 
     startActivity(intent); 
    } 

로그 캣 :

07-12 11:44:35.083 2675-2675/esrakarakecili.autoking I/Choreographer: Skipped 1736 frames! The application may be doing too much work on its main thread. 
07-12 11:44:35.254 2675-3064/esrakarakecili.autoking D/OpenGLRenderer: endAllStagingAnimators on 0xa4463380 (ListView) with handle 0xaec39b00 
07-12 11:44:35.523 4603-4603/esrakarakecili.autoking E/InstantRun: IO Error creating local socket at esrakarakecili.autoking 
                    java.io.IOException: Address already in use 
                     at android.net.LocalSocketImpl.bindLocal(Native Method) 
                     at android.net.LocalSocketImpl.bind(LocalSocketImpl.java:306) 
                     at android.net.LocalServerSocket.<init>(LocalServerSocket.java:48) 
                     at com.android.tools.fd.runtime.Server.<init>(Server.java:94) 
                     at com.android.tools.fd.runtime.Server.create(Server.java:88) 
                     at com.android.tools.fd.runtime.BootstrapApplication.onCreate(BootstrapApplication.java:358) 
                     at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1012) 
                     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4553) 
                     at android.app.ActivityThread.access$1500(ActivityThread.java:151) 
                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364) 
                     at android.os.Handler.dispatchMessage(Handler.java:102) 
                     at android.os.Looper.loop(Looper.java:135) 
                     at android.app.ActivityThread.main(ActivityThread.java:5254) 
                     at java.lang.reflect.Method.invoke(Native Method) 
                     at java.lang.reflect.Method.invoke(Method.java:372) 
                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
07-12 11:44:35.688 4603-4603/esrakarakecili.autoking W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable 
07-12 11:44:35.709 4603-4626/esrakarakecili.autoking D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true 

                     [ 07-12 11:44:35.714 4603: 4603 D/   ] 
                     HostConnection::get() New Host Connection established 0xb42f4a00, tid 4603 
07-12 11:44:35.724 4603-4603/esrakarakecili.autoking D/Atlas: Validating map... 
07-12 11:44:35.801 4603-4626/esrakarakecili.autoking I/OpenGLRenderer: Initialized EGL, version 1.4 
07-12 11:44:35.816 4603-4626/esrakarakecili.autoking D/OpenGLRenderer: Enabling debug mode 0 
07-12 11:44:35.825 4603-4626/esrakarakecili.autoking W/EGL_emulation: eglSurfaceAttrib not implemented 
07-12 11:44:35.825 4603-4626/esrakarakecili.autoking W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xb4341a40, error=EGL_SUCCESS 
+3

show logcat. 'NullPointerException'에 대한 문제 –

+0

좋아, 지금 logcat을 추가해 주셔서 감사합니다 –

답변

0

내 해시 맵의 데이터가 일치하여 문제가 해결되었습니다.

요점은 위치 1에서 작업 중이며 내 배열의 다른 위치에서 작업하지 않았다는 점이었습니다. 그래서 해시 맵의 데이터를 비교하여 비트 맵의 ​​해상도가 300x300과 480x480이라는 점을 깨달았습니다. 480 픽셀이 너무 커서 다른 페이지로 보낼 수 없습니다.

하지만 너무 큰 비트 맵이 필요한 경우 수행 할 수있는 작업이 궁금합니다.

감사합니다.

1

내가 제대로 데이터를 검색하지 않은 것 같아요.

// To get the object in second Activity 
getIntent().getSerializableExtra("SelectedMap"); 
+0

답장을 보내 주셔서 감사합니다. 두 번째 클래스는 다음 페이지로 이동하기 전에 오류가 있었기 때문에 아직 시작하지 않았습니다. 나는 비트 맵 크기를 줄임으로써이 문제를 해결했다. –

관련 문제