在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;
}
我想设计我的 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;
}