0

フラグメント内のグリッド ビューに表示される画像で onclick イベントが発生したときに、画像プロパティを取得しようとしています。onItemClick メソッドに渡されたパラメータから値を取得しようとしています。パラメータにアクセスしようとすると、トースター内でアプリが動作しなくなります。

トースター内で、テキスト「test」を v.getId()/position/id に置き換えています。その後、アプリが停止します。

これがコードです。

    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)
4

1 に答える 1

1

に渡すv.getId()/position/idと、からのリソースの をToast表していると見なされますが、検出されず、その例外がスローされます。代わりにこれを試してください:idStringstrings.xml

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

また

Toast.makeText(getActivity(), "" + position + " " + id, Toast.LENGTH_SHORT).show();
于 2012-09-28T10:41:06.747 に答える