1

私のアプリケーションにはlistViewがあります。リスト ビューの各項目には、クリック可能な本体 (画像とテキスト) と、クリック可能な他の 3 つの textView が含まれています。

アイテムをクリックすると、アイテムに表示されているそれぞれのエリアのマップが表示されます。アクティビティのリストビューで 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;
}

私のアクティビティでは、クリックされたアイテムの参照が必要なときに位置パラメーターを使用できますが、getView の場合、パラメーターの位置は新しく作成されたアイテムを提供しますが、クリックしたアイテムの iWant は提供しません。これを解決するには??

ここに画像の説明を入力

4

1 に答える 1

1

ラベルにタグを付けて、クリック ハンドラーのコンテキストとして使用できます。

于 2012-07-19T11:13:29.550 に答える