2012-07-20 75 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然后对该视图执行相应的操作。

希望这个解释对你的作品..

相关问题