I'm facing strange selection of list-view item while scrolling.
Initial selection screenshot(selected 1st entry)
after scrolling listview item is auto selected why? (see below screenshot)
adapter source code is here
public View getView(int position, View convertView, ViewGroup parent) {
View vi=convertView;
if(convertView==null)
vi = inflater.inflate(R.layout.list_row, null);
TextView title = (TextView)vi.findViewById(R.id.title); // title
TextView artist = (TextView)vi.findViewById(R.id.artist); // artist name
TextView duration = (TextView)vi.findViewById(R.id.duration); // duration
ImageView thumb_image=(ImageView)vi.findViewById(R.id.list_image); // thumb image
HashMap<String, String> song = new HashMap<String, String>();
song = data.get(position);
// Setting all values in listview
title.setText(song.get(CustomizedListView.KEY_TITLE));
artist.setText(song.get(CustomizedListView.KEY_ARTIST));
duration.setText(song.get(CustomizedListView.KEY_DURATION));
imageLoader.DisplayImage(song.get(CustomizedListView.KEY_THUMB_URL), thumb_image);
return vi;
}
make button visible in setonitemclicklistner() is giving the problem
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
view.setSelected(true);
view.setBackgroundResource(R.drawable.gradient_bg_hover);
TextView title;
TextView artist;
title = (TextView)view.findViewById(R.id.title); // title
artist = (TextView)view.findViewById(R.id.artist); // artist
title.setTextColor(getResources().getColor(android.R.color.white));
artist.setTextColor(getResources().getColor(android.R.color.white));
ImageButton btnChild = (ImageButton)view.findViewById(R.id.arrow);
btnChild.setVisibility(View.VISIBLE);
if(lastselected!= null)
{
title = (TextView)lastselected.findViewById(R.id.title); // title
artist = (TextView)lastselected.findViewById(R.id.artist); // artist
title.setTextColor(getResources().getColor(android.R.color.black));
artist.setTextColor(getResources().getColor(android.R.color.black));
btnChild = (ImageButton)lastselected.findViewById(R.id.arrow);
btnChild.setVisibility(View.INVISIBLE);
lastselected.setBackgroundResource(R.drawable.gradient_bg);
}
lastselected= view;
after image button is visible the getview recycle the same view for next displaying item. I don’t know how to fix this.