0

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

但它会为每个网格视图 onclick 返回相同的 id

4

4 回答 4

1

使用gridView.setOnItemClickListener。在点击监听器中,use parent.getId找到父级的id。如果您有多个网格视图,则应调用gridView.setId()将其设置为独特的。

于 2012-07-20T11:29:49.857 回答
0

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

于 2012-07-20T11:19:06.683 回答
0

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

于 2012-07-20T11:19:49.210 回答
0

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

然后您可以通过使用 OnItemclicked() 即父级的第一个参数来确定单击了哪个视图检查单击的视图是否是 GridView 的子视图,检查该父级是否是哪个网格视图,然后对该视图执行相应的操作。

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

于 2012-07-20T11:28:53.163 回答