0

をクリックするたびにImageViewOnClickListener画面の下部にURLある次のオブジェクトの がView表示されます。これはまだ画面に表示されていません。

    public View getView(int position, View convertView, ViewGroup parent){
    View rowView = convertView;

    if(rowView == null){
        rowView = inflater.inflate(R.layout.listitem, null);

        //Creëer een Viewholder om alles statisch op te slaan in het geheugen
        holder = new ViewHolder();
        holder.title = (TextView) rowView.findViewById(R.id.title);
        holder.subreddit = (TextView)rowView.findViewById(R.id.subreddit);
        holder.source = (TextView)rowView.findViewById(R.id.source);
        holder.score = (TextView)rowView.findViewById(R.id.score);
        holder.image = (ImageView)rowView.findViewById(R.id.imageView1);
        holder.image.setTag(position);
        rowView.setTag(holder);
    }
    else{
        holder = (ViewHolder) rowView.getTag();
    }


    holder.image.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {
            Intent i = new Intent();
            i.setAction("com.tolgap.json.TEST");
            i.putExtra("page", holder.thing.url);
            context.startActivity(i);
        }

    });

    holder.thing = gegevens.get(position).data;
    holder.title.setText(holder.thing.title);
    holder.subreddit.setText(holder.thing.subreddit);
    holder.source.setText(holder.thing.domain);
    holder.score.setText(holder.thing.score);
    holder.image.setImageBitmap(plaatjes.get(position));        

    return rowView;
}  

のコードは次のViewHolderとおりです。

static class ViewHolder{
    Result thing;
    TextView title;
    TextView subreddit;
    TextView source;
    TextView score;
    ImageView image;
}

メソッドの使用についていくつか読んだことがありますが、setTag()これを試してみましたが、タグとして付けなければならないものを十分に理解できませんでした。

4

2 に答える 2

1

Resultにデータ オブジェクトを格納しても意味がありませんViewHolder

static class ViewHolder{
    TextView title;
    TextView subreddit;
    TextView source;
    TextView score;
    ImageView image;
}

getView()メソッド:

//...
else{
    holder = (ViewHolder) rowView.getTag();
}
Result obj = gegevens.get(position).data;
holder.image.setTag(obj.url); // It's a String I guess?!?
holder.image.setOnClickListener(new OnClickListener(){

    @Override
    public void onClick(View v) {
        String toPass = (String) v.getTag();
        Intent i = new Intent();
        i.setAction("com.tolgap.json.TEST");
        i.putExtra("page", toPass);
        context.startActivity(i);
    }

});
holder.title.setText(obj.title);
holder.subreddit.setText(obj.subreddit);
holder.source.setText(obj.domain);
holder.score.setText(obj.score);
holder.image.setImageBitmap(plaatjes.get(position)); 
return rowView;
}
于 2012-04-30T19:00:34.373 に答える
0

ホルダー変数をどこで宣言していますか? それをローカルの最終変数にして、問題が解決するかどうかを確認してください。

于 2012-04-30T18:53:49.190 に答える