在ListView中添加多个Image并获取每个点击事件

Add multiple Images in ListView and get each click event

我想设计我的 UI 如下 Instagram 用户 activity 屏幕。
具有相同的功能(获取头像、用户名、喜欢的照片点击事件事件)。

如何在列表Item中添加多张图片并获取添加图片的点击事件?

如果您对图像使用自定义图像视图,则使用此 属性...

使图像视图可点击
<ImageView  
 android:clickable="true"  
 android:onClick="Click"  
 android:src="@drawable/img">  
 </ImageView>

我想这会对你有所帮助...

您必须在创建行时创建 ImageView。这意味着您必须在 getView() 期间执行此操作。创建新的 ImageView 时,使用 iv.setClickable(true) 使其可点击,并在图像上附加一个新的点击监听器,一旦您点击它,它将处理图像的打开。如果每个图像都这样做,您可以在适配器中实现 onClickListener 并将其添加到每个图像。如果所有图像都执行相同操作(例如打开您刚刚单击的图像),这可能是一个明智的选择。

在 onClick 回调中,您将看到点击源自的视图,因此您可以访问其 ID 或标签,这将告诉您要显示的图像。

您必须使用适配器才能在列表视图中显示多个图像并进行点击 做这样的事情

@Override
public View getView(int position, View convertView, ViewGroup parent) {

    Holder holder = null;

    if (convertView == null) {
        convertView = inf.inflate(R.layout.image, parent, false);
        holder = new Holder();
        holder.im1 = (ImageView) convertView.findViewById(R.id.imageView1);
        holder.im2 = (ImageView) convertView.findViewById(R.id.imageView2);

        holder.im1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                System.out.println("i is clicked");
            }
        });

        holder.im2.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                System.out.println("2 is clicked");
            }
        });
        convertView.setTag(holder);
    } else {
        convertView.getTag();
    }

    return convertView;
}

public class Holder {
    ImageView im1, im2;
}