2012-07-20 77 views
0

在我的android應用程序中,我創建了3個網格視圖.Hear是code.and它顯示了3個網格視圖。如何處理Android中動態創建的網格視圖的onclick事件?

 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()); 
} 

,但它會返回相同的ID爲每個網格視圖的onclick

回答

1

使用gridView.setOnItemClickListener。在點擊監聽器中,use parent.getId可以找到父代的ID。如果您有多個網格視圖,您應該致電gridView.setId()將其設置爲獨特的東西。

+0

簡單的答案。非常感謝 – 2012-07-20 11:47:22

0

嘗試使用view.getId()內onItemclick()。

+0

view.getId()將爲每個網格視圖返回相同的ID。 – 2012-07-20 11:26:07

0

對於每個mGridView你需要一個單獨的View.onClickListener接口實現,或單個View.onClickListener實現與View.getId()(如vishwa指出)區分每個網格。這取決於你想要對每個網格做什麼,以及你希望他們如何表現。

+0

我在哪裏實現View.onClickListener?你的意思是在 – 2012-07-20 11:27:16

+0

的循環內我編輯過這個問題。你的意思是? – 2012-07-20 11:31:51

0

首先,您需要在您的類中實現onItemclickListener接口,然後您需要通過onItemClickListener中的第二個參數通過獲取點擊視圖的view.getId()來獲取Id從哪個網格視圖中檢查單擊的項目。

然後您可以確定哪個視圖被點擊檢查點擊的視圖是使用OnItemclicked()的第一個參數(即父級)的GridView的子視圖,檢查該父級是哪個GridView然後對該視圖執行相應的操作。

希望這個解釋對你的作品..

相關問題