0

Ich habe einen ViewHolder in Arrayadapter Klasse, ich möchte klicken Sie Aktion auf bestimmte Element in Listview und müssen Inhalt des Elements auf Favoriticon klicken klicken.Android, wie update particulares Bildansicht in Listview auf Artikel klicken

Ich habe binden Klickaktion in getView Methode:

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; 

    } 

Wie bestimmtes Element in Listenansicht auf Artikel klicken zu aktualisieren, wenn ich Position des Elements haben.

+0

rufen Sie notifyDataSetChanged auf? – PedroHawk

+0

ja .. aber kein Erfolg – amrit

Antwort

0

Also stelle ich mir vor, Sie haben eine if else-Anweisung, die überprüft, ob das Element an der aktuellen Position ist? Nun, was passiert, ist, dass Sie das Symbolbild einstellen, wenn Sie darauf klicken, aber Sie ändern den Objektwert nicht. Wenn Sie also nach oben und unten scrollen und das Listenelement recycelt wird, wird der Wert zurückgesetzt.

Sie müssen wie dieses

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

etwas haben, jetzt diese nur eine Vermutung basierend auf dem Code ist, dass Sie bisher geschrieben haben. Wenn Sie die Frage mit dem Rest Ihres Adaptercodes aktualisieren, kann ich meine Antwort aktualisieren.

+0

Ich habe meinen Code angehängt..nun on click mehrere Elemente aktualisieren in Liste .. – amrit

Verwandte Themen