如何在android中处理动态创建的网格视图的onclick事件?

时间:2012-07-20 11:06:40

标签: android android-gridview

在我的Android应用程序中,我已经动态创建了3个网格视图。它是代码。它显示了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());
}

但它会为每个网格视图点击

返回相同的ID

4 个答案:

答案 0 :(得分:1)

使用gridView.setOnItemClickListener。在单击侦听器中,use parent.getId以查找父级的ID。如果您有多个网格视图,则应调用gridView.setId()将其设置为唯一的网格。

答案 1 :(得分:0)

尝试在onItemclick()中使用view.getId()。

答案 2 :(得分:0)

对于每个mGridView,您需要单独的View.onClickListener接口实施或单个View.onClickListener实施,并使用View.getId()区分每个网格(作为 vishwa 指出)。这取决于你想对每个网格做什么,以及你希望它们如何表现。

答案 3 :(得分:0)

首先,你需要在你的类中实现onItemclickListener接口,然后你需要通过onItemClickListener中的第二个参数获取点击视图的view.getId()来检查所点击的项目是从哪个网格视图。

然后您可以识别单击哪个视图通过使用OnItemclicked()的第一个参数(即父级)检查单击的视图是GridView的子视图,检查该父级是哪个gridview然后相应地为该视图执行操作。

希望这个解释对你有用..