0

私はarrayAdapterクラスにViewHolderを持っています。リストビュー内の特定のアイテムに対してクリックアクションをバインドしたいので、favoriteiconのアイテムのコンテンツを更新する必要があります。Android、アイテムのリストビューでpariticular imageviewを更新するには

私はGetViewメソッドでバインドクリックアクションを持っている:

class ViewHolder 
    { 

     public ImageView favoriteicon; 
     public TextView title; 
     public TextView time; 
     public TextView type; 
     public TextView hidden_value_id; 
     public TextView hidden_image_name; 
     public boolean imageset=false; 
     public ImageView imgView; 
public ViewHolder(View base) 
     { 
      this.favoriteicon=(ImageView) base.findViewById(R.id.favoriteicon); 
      this.title = (TextView) base.findViewById(R.id.title); 
      this.time = (TextView) base.findViewById(R.id.time); 
      this.type = (TextView) base.findViewById(R.id.type); 
      this.imgView = (ImageView) base.findViewById(R.id.icon); 
      this.hidden_value_id = (TextView) base.findViewById(R.id.hidden_value_id); 
      this.hidden_image_name = (TextView) base.findViewById(R.id.hidden_image_name); 


     } 

} 


    @Override 
    public View getView(final int position,View view, final ViewGroup parent) { 

     final ViewHolder holder; 

     View rowView=view; 

if(rowView==null) { 


LayoutInflater inflater = (LayoutInflater) context 
     .getSystemService(context.LAYOUT_INFLATER_SERVICE); 

rowView = inflater.inflate(R.layout.new_listview_items, parent, false); 
holder = new ViewHolder(rowView); 


rowView.setTag(holder); 
} 
     else { 

holder=(ViewHolder)rowView.getTag(); 

} 


     holder.title.setText(title.get(position)); 
     holder.time.setText(time.get(position)); 
     holder.type.setText(type.get(position)); 
     holder.hidden_value_id.setText(id.get(position)); 

holder.hidden_image_name.setText(hidden_image_name.get(position)); 
if(holder.imageset==true) 
{ 

holder.favoriteicon.setImageResource(R.drawable.h); 

} 


     holder.favoriteicon.setOnClickListener(new 
View.OnClickListener() { 
      public void onClick(View b) { 

holder.favoriteicon.setImageResource(R.drawable.h); 
holder.imageset=true; 


       notifyDataSetChanged(); 

      } 
     }); 




     return rowView; 

    } 

私はアイテムの位置を持っている場合、アイテムのクリックでリストビューで特定のアイテムを更新する方法。

+0

あなたはnotifyDataSetChangedを呼び出しますか? – PedroHawk

+0

はい..しかし成功しません。 – amrit

答えて

0

だから現時点で私はあなたが現在のポジションのアイテムが好意的であるかどうかをチェックするif elseステートメントがあると思いますか?ここで何が起こっているのかは、オブジェクトの値を変更していなくてもクリックしたときにアイコンイメージを設定していることです。したがって、上下にスクロールしてリストアイテムをリサイクルすると、値がリセットされます。あなたはこの

holder.favoriteicon.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View b) { 
      object.setFavourited(true); 
      holder.favoriteicon.setImageResource(R.drawable.h); 
     } 
    }); 

のようなものを持っている必要があり

は、これは、あなたがこれまでに投稿したコードに基づいて、ただの推測です。質問を残りのアダプタコードで更新すると、私は自分の答えを更新できます。

+0

私のコードをクリックしてください。クリックすると複数の項目がリストに更新されています。 – amrit

関連する問題