我想要设计我的用户界面,就像下面的Instagram用户活动屏幕一样。
具有相同的功能(获取个人资料图片,用户名,喜欢的照片点击事件事件)。在ListView中添加多个图像并获取每个点击事件
如何在列表项中添加多个图像并获取添加图像的点击事件?
我想要设计我的用户界面,就像下面的Instagram用户活动屏幕一样。
具有相同的功能(获取个人资料图片,用户名,喜欢的照片点击事件事件)。在ListView中添加多个图像并获取每个点击事件
如何在列表项中添加多个图像并获取添加图像的点击事件?
你会必须在创建行时创建ImageView。这意味着您需要在getView()
期间执行此操作。当创建新的ImageView时,使用iv.setClickable(true)
使其可点击并将新的Clicklistener附加到图像上,该图像将在点击图像后处理图像的打开。如果每个图像都相同,则可以在适配器中实现onClickListener并将其添加到每个图像。如果所有图像都一样,这可能是一个明智的选择,就像打开刚才点击的图像一样。
在onClick回调中,您将看到点击源自于,因此您可以访问其ID或其标记,它会告诉您要显示的图像。
如果您正在使用自定义的ImageView为imagesthen利用该性质使ImageView的点击...
<ImageView
android:clickable="true"
android:onClick="Click"
android:src="@drawable/img">
</ImageView>
我认为这将有助于你...
不这样做,你最终将不得不为每个图像的回调显示多个图像,如果你想能够动态添加图片到您的视图中,您只能添加尽可能多的图片,因为您有回调。 –
你必须使用适配器列表视图和点击 做这样的事情
@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;
}
像这样你的ImageViews数量有限。如果你知道你永远不会有超过2张图片,那没关系。但如果你有更多?您将需要重新修改布局并执行一些隐藏/可见的逻辑。我宁愿用代码创建它们。 –
感谢您的帮助。我会去尝试一下。我希望它会起作用。 –
您必须检查imageview是否实际接收到单击事件,Row可能会捕获它。如果你不知道,我可能会检查我是如何解决这个问题的。不能记得它是如何完成的。 –