0

我想要在片段內的網格視圖中顯示的圖像上發生onclick事件時獲取圖像屬性。我試圖從傳遞給onItemClick方法的參數中獲取值。當我嘗試訪問任何參數時,應用程序停止工作。GridView上的OnItemClickListener在片段內部沒有響應

在烤麪包機內部,我用v.getId()/ position/id替換文本「test」。然後,應用程序停止。

這是代碼。

GridView gridView = (GridView) view.findViewById(R.id.imageGrid); 
    gridView.setAdapter(new ImageAdapter(this));  
    gridView.setOnItemClickListener(new OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
     Toast.makeText(getActivity(), "test" ,Toast.LENGTH_SHORT).show(); 
     }}); 

我是否需要提供其他詳細信息?或者我犯了什麼愚蠢的錯誤?

更新: 我在這裏添加我的錯誤日誌。

09-28 16:03:53.327: W/dalvikvm(15316): threadid=1: thread exiting with uncaught exception (group=0x410f6300) 
09-28 16:03:53.337: E/AndroidRuntime(15316): FATAL EXCEPTION: main 
09-28 16:03:53.337: E/AndroidRuntime(15316): android.content.res.Resources$NotFoundException: String resource ID #0x10 
09-28 16:03:53.337: E/AndroidRuntime(15316): at android.content.res.Resources.getText(Resources.java:229) 
09-28 16:03:53.337: E/AndroidRuntime(15316): at android.widget.Toast.makeText(Toast.java:265) 
09-28 16:03:53.337: E/AndroidRuntime(15316): at com.example.store.fragments.AllStoresFragment$1.onItemClick(AllStoresFragment.java:111) 
09-28 16:03:53.337: E/AndroidRuntime(15316): at android.widget.AdapterView.performItemClick(AdapterView.java:298) 
09-28 16:03:53.337: E/AndroidRuntime(15316): at android.widget.AbsListView.performItemClick(AbsListView.java:1086) 
09-28 16:03:53.337: E/AndroidRuntime(15316): at android.widget.AbsListView$PerformClick.run(AbsListView.java:2855) 
09-28 16:03:53.337: E/AndroidRuntime(15316): at android.widget.AbsListView$1.run(AbsListView.java:3529) 
09-28 16:03:53.337: E/AndroidRuntime(15316): at android.os.Handler.handleCallback(Handler.java:615) 
09-28 16:03:53.337: E/AndroidRuntime(15316): at android.os.Handler.dispatchMessage(Handler.java:92) 
09-28 16:03:53.337: E/AndroidRuntime(15316): at android.os.Looper.loop(Looper.java:137) 
09-28 16:03:53.337: E/AndroidRuntime(15316): at android.app.ActivityThread.main(ActivityThread.java:4745) 
09-28 16:03:53.337: E/AndroidRuntime(15316): at java.lang.reflect.Method.invokeNative(Native Method) 
09-28 16:03:53.337: E/AndroidRuntime(15316): at java.lang.reflect.Method.invoke(Method.java:511) 
09-28 16:03:53.337: E/AndroidRuntime(15316): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
09-28 16:03:53.337: E/AndroidRuntime(15316): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
09-28 16:03:53.337: E/AndroidRuntime(15316): at dalvik.system.NativeStart.main(Native Method) 
+0

沒有ü找到任何錯誤?然後在這裏發佈你的logcat – MAC

回答

1

如果傳遞v.getId()/position/idToast它會認爲它代表了String資源從strings.xml,它不會找到並拋出異常id。試試這個:

Toast.makeText(getActivity(), String.valueOf(position), Toast.LENGTH_SHORT).show(); 

Toast.makeText(getActivity(), "" + position + " " + id, Toast.LENGTH_SHORT).show(); 
+0

謝謝Luksprog。你節省了我的時間。在這花了近2個小時。 – intrepidkarthi