在android中对listview项目创建不同的可单击视图

在android中对listview项目创建不同的可单击视图,android,adapter,Android,Adapter,在我的应用程序中,我有一个listView。列表视图的每个项目都包含一个可单击的主体(图像和一些文本)和3个其他可单击的文本视图 当我单击项目时,它会显示项目上显示的各个区域的地图,这很好,因为我在活动中使用的是listview上的onItemClick 但是,当我想在图像中标记为红色的其他3个文本视图上实现onClick时,我必须在适配器类的getView方法中实现onClick 问题来了: public View getView(int position, View convertView,

在我的应用程序中,我有一个listView。列表视图的每个项目都包含一个可单击的主体(图像和一些文本)和3个其他可单击的文本视图

当我单击项目时,它会显示项目上显示的各个区域的地图,这很好,因为我在活动中使用的是listview上的onItemClick

但是,当我想在图像中标记为红色的其他3个文本视图上实现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的情况下,position参数给出了新创建的项目,而不是我单击的项目的iWant。如何解决这个问题


您可以将标签放在标签上,并将其用作单击处理程序的上下文。

您可以将标签放在标签上,并将其用作单击处理程序的上下文。

能否请您详细说明,如何做?能否请您详细说明,如何做??