如何处理Android中动态创建的网格视图的onclick事件?
在我的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
使用gridView.setOnItemClickListener。在点击监听器中,use parent.getId
可以找到父代的ID。如果您有多个网格视图,您应该致电gridView.setId()
将其设置为独特的东西。
尝试使用view.getId()内onItemclick()。
view.getId()将为每个网格视图返回相同的ID。 – 2012-07-20 11:26:07
对于每个mGridView
你需要一个单独的View.onClickListener
接口实现,或单个View.onClickListener
实现与View.getId()
(如vishwa指出)区分每个网格。这取决于你想要对每个网格做什么,以及你希望他们如何表现。
我在哪里实现View.onClickListener?你的意思是在 – 2012-07-20 11:27:16
的循环内我编辑过这个问题。你的意思是? – 2012-07-20 11:31:51
首先,您需要在您的类中实现onItemclickListener接口,然后您需要通过onItemClickListener中的第二个参数通过获取点击视图的view.getId()来获取Id从哪个网格视图中检查单击的项目。
然后您可以确定哪个视图被点击检查点击的视图是使用OnItemclicked()的第一个参数(即父级)的GridView的子视图,检查该父级是哪个GridView然后对该视图执行相应的操作。
希望这个解释对你的作品..
简单的答案。非常感谢 – 2012-07-20 11:47:22