Skip to content Skip to sidebar Skip to footer

Listview Selected Item Color Changed When Come Back From Other Activity In Android

How to do Listview selected item color stay changed when come back from other activity in android? Please give me a proper solution. Here, I attached Adapter class public class Sel

Solution 1:

To do so u need to save textview states that is selected or not. first create map as a global to ur class as,

Map<Integer, Boolean> map_textcolor=new HashMap<Integer, Boolean>();

then change ur getView method like this..

@Overridepublic View getView(int position, View convertView, ViewGroup parent) {
        Viewv= convertView;

        // only inflate the view if it's nullif (v == null) {
            LayoutInflatervi=  (LayoutInflater)this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = vi.inflate(R.layout.simplerow, null);
        }

        // get text viewTextViewlabel= (TextView)v.findViewById(R.id.rowTextView);
*******************************************************************************
        // change the row color based on selected state
        Boolean selectedPos=map_textcolor.get(position);
        if(selectedPos!=null&&selectedPos.booleanValue())
        {
       //label.setSelected(true);
       label.setTextColor(Color.CYAN);
       selected_view=label;
        }
        else
        {
       //label.setSelected(false);
       label.setTextColor(Color.WHITE);
        }
******************************************************************************         
        label.setText(this.getItem(position).toString());

then add code to listner like this...

finalint p=position;
    label.setOnClickListener(newOnClickListener() {
@OverridepublicvoidonClick(View view) {
    // TODO Auto-generated method stubif(selected_view!=null)
  {
    //selected_view.setSelected(false);
    label.setTextColor(Color.WHITE);
    map_textcolor.remove(prev_pos);
  }
  selected_view=view;
 // selected_view.setSelected(true);
  label.setTextColor(Color.CYAN);
  map_textcolor.put(p, true);
  prev_pos=p;
}
});
        /*
        // to use something other than .toString()
        MyClass myobj = (MyClass)this.getItem(position);
        label.setText(myobj.myReturnsString());
        */return(v);
    }

Post a Comment for "Listview Selected Item Color Changed When Come Back From Other Activity In Android"