在我的应用程序中,我有一个listView。列表视图的每个项目都包含一个可点击的主体(图像和一些文本)以及其他3个可点击的文本视图。
当我点击项目时,它显示项目上显示的相应区域的地图,这很好,因为我在我的活动中使用onItemClick列表视图。
但是当我想在图像中标记为红色的3个其他TextView上实现onClick时,我必须在适配器类的getView方法中实现onClick。
问题出现了:
public View getView(int position, View convertView, ViewGroup parent) {
View vi = convertView;
ViewHolder holder = new ViewHolder();
p = values.get(position);
String date = new java.text.SimpleDateFormat("dd/MM/yy")
.format(new java.util.Date(p.timeStamp));
if (vi == null) {
vi = inflater.inflate(R.layout.feed_items, null);
holder.text = (TextView) vi.findViewById(R.id.label);
holder.image = (ImageView) vi.findViewById(R.id.logo);
holder.thankLabel = (TextView) vi.findViewById(R.id.thankLabel);
holder.iwantLabel = (TextView) vi.findViewById(R.id.iWantLabel);
holder.detailsLabel = (TextView) vi
.findViewById(R.id.detailsLabel);
holder.thankLabel
.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
}
});
holder.iwantLabel
.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Intent intent = new Intent(activity,
IWantActivity.class);
intent.putExtra("productDetails", p.productName
+ "^" + p.reportedPrice);
activity.startActivity(intent);
}
});
holder.detailsLabel
.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
}
});
}
vi.setTag(holder);
} else {
holder = (ViewHolder) vi.getTag();
}
return vi;
}
在我的活动中,当我想要点击哪个项目的引用时我可以使用position参数,但是在getView的情况下,参数位置给出新创建的项目,但不是我点击的项目iWant。怎么解决这个?
答案 0 :(得分:1)
您可以在标签上放置标签,并将其用作点击处理程序的上下文。