i am trying to setVisible a play icon on click of listview item just like in music player.
I am using a custom array adapter, all is working good but when i scroll up/down and select any item on the list the previous play icon dosent go away.
But if i dont scroll and just click on the item it works perfectly fine.
OnclickListener :
listChannels.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
if (oldView != null) {
oldView.setDrawingCacheEnabled(true);
ImageView icon = (ImageView) oldView
.findViewById(R.id.icon);
icon.setImageBitmap(null);
icon.setVisibility(ImageView.GONE);
icon.invalidate();
}
oldView = arg1;
selectedItem = arg2;
ImageView icon = (ImageView) arg1.findViewById(R.id.icon);
icon.setImageResource(R.drawable.play);
icon.setVisibility(ImageView.VISIBLE);
}
});
Array Adapter :
private class ListArrayAdapter extends ArrayAdapter<String> {
public ListArrayAdapter(Context context, int textViewResourceId,
String[] arrTitle) {
super(context, textViewResourceId, arrTitle);
imageLoader = new ImageLoader(activity.getApplicationContext());
}
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = getLayoutInflater();
View row = inflater.inflate(R.layout.listitem_row, parent, false);
TextView label = (TextView) row.findViewById(R.id.station);
ImageView imageView = (ImageView) row
.findViewById(R.id.imageViewDisplay);
String areaStr = feeds.get(position).getStrLocation();
imageLoader.DisplayImage(feeds.get(position).getStrImage()
.toString(), activity, imageView);
if (!areaStr.equals("")) {
TextView area = (TextView) row.findViewById(R.id.area);
area.setText(areaStr);
area.setVisibility(TextView.VISIBLE);
}
if (selectedItem == position) {
ImageView icon = (ImageView) row.findViewById(R.id.icon);
icon.setImageResource(R.drawable.play);
icon.setVisibility(ImageView.VISIBLE);
}
return row;
}
}