0

私のAndroidアプリでは、3つのグリッドビューを動的に作成しました.Hearはコードです.3つのグリッドビューを表示しました.

        for (int i=0; i<2; i++) {
                LinearLayout inflatedView =  (LinearLayout)mInflater.inflate(R.layout.library_gallery, null);
                LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, 300);
                inflatedView.setLayoutParams(layoutParams);
                mGridView = (GridView) inflatedView.findViewById(R.id.library_gallary);
                if(Thambs!=null){
                    mGridView.setAdapter(new LibraryGalleryAdapter(mContext,Thambs1));
                    setResourse(i,Names,values1);
                }
      }

ここで、これら 3 つの動的に作成されたグリッド ビューのクリック イベントを一意に識別したいと考えています。何かアイデアはありますか?

編集:

    mGridView.setOnItemClickListener(new OnItemClickListener() {

                    @Override
                    public void onItemClick(AdapterView<?> av, View v,final int posision, long id) {

                        Log.e(TAG, "id : "+v.getId());
}

ただし、グリッドビューのonclickごとに同じIDを返します

4

4 に答える 4

1

gridView.setOnItemClickListenerを使用します。クリック リスナーuse parent.getIdで、親の ID を検索します。複数のグリッド ビューがある場合は、呼び出しgridView.setId()て固有のものに設定する必要があります。

于 2012-07-20T11:29:49.857 に答える
0

まず、クラスにonItemclickListenerインターフェイスを実装する必要があります。次に、onItemClickListenerの2番目の引数でクリックされたビューのview.getId()によってIdを取得することにより、クリックされたアイテムがどのグリッドビューからのものであるかを確認する必要があります。

次に、クリックされたビューを識別できます。クリックされたビューがGridViewの子ビューであることを確認するには、OnItemclicked()の最初の引数、つまり親を使用します。この親がどのグリッドビューであるかを確認し、そのビューに応じてアクションを実行します。

この説明があなたのために働くことを願っています。

于 2012-07-20T11:28:53.163 に答える
0

それぞれについて、個別のインターフェース実装、または単一の実装と各グリッドを区別mGridViewする必要があります(vishwaが指摘しているように)。これは、各グリッドで何をしたいか、およびグリッドをどのように動作させたいかによって異なります。View.onClickListenerView.onClickListenerView.getId()

于 2012-07-20T11:19:49.210 に答える