java - 如何设置和获取唯一的名称/标签来动态添加子android

标签 java android android-linearlayout android-imageview

我已动态地将 53 个图像添加到布局的 ImageView 中。我想为我添加的每个图像设置唯一的 id,并希望在单击图像时获取该 id。我已向我的 imageview 添加了一个标签 imageView.setTag(WirelessPin.arr_WirelessItems[i]); 但 onClick ProductURL = (String) imageView.getTag(); 始终返回最后一张图片的标签,即第 53 号图片。我该如何解决此问题?

这是我的代码

for (int i = 0; i < WirelessPin.arr_WirelessItems.length; i++) {
                        url = new URL(WirelessPin.arr_WirelessItems[i].replaceAll("\\s+","%20"));
                        //ProductURL = WirelessPin.arr_WirelessItems[i];

                        Bitmap bmp = BitmapFactory.decodeStream(url
                                .openConnection().getInputStream());

                        LinearLayout layout = new LinearLayout(con);
                        layout.setLayoutParams(new LayoutParams(150, 110));
                        layout.setGravity(Gravity.CENTER);

                        imageView = new ImageView(con);
                        imageView.setLayoutParams(new LayoutParams(140, 84));
                        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
                        imageView.setImageBitmap(bmp);

                        imageView.setTag(WirelessPin.arr_WirelessItems[i]);

                        imageView.setOnClickListener(new View.OnClickListener() {

                            @Override
                            public void onClick(View v) {

                                //imageView.se

                                ProductURL = (String) imageView.getTag();
                                CollectDenominationsForWirelessPin obj = new CollectDenominationsForWirelessPin();
                                obj.WirelessPinDenominations(con, ProductURL, UserId);

                            }
                        });
                        layout.addView(imageView);
                        WirelessPin.sliderProducts.addView(layout);
                    }

最佳答案

在 OnClick 方法中,将代码更改为

ImageView iv = (ImageView)v;
ProductURL = (String) iv.getTag();

关于java - 如何设置和获取唯一的名称/标签来动态添加子android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21227908/

相关文章:

java - 最新版本的eclipse是否完全兼容windows 10?

android - 用于覆盖的 FrameLayout 与 RelativeLayout

android - VS 2019错误样式属性styles.xml未找到

java - 当有模型列表而不仅仅是 Java 中的模型时如何获取类

java - 如何告诉布局将所有内容间隔 50/50?

android - RelativeLayout 正在返回 LinearLayout LayoutParams

java - 为带有页码指示的 XWPFDocument 创建目录

java - 使用 Gradle 将 Formatter 设置添加到 Eclipse 和 IntelliJ 项目

android - 计算布局中的可见元素

java - 将 json 值发布到服务器的不同方法