i use custom adapter for list view , i want to display an image when click on a item ,
in listView.OnItemClickListener
, notifyDataSetChange()
not working and not called
i want to change visibility from gone to visible for selected Item
On Item click Listener code :
Music m = (Music) musicManager.getItem(position);
m.setPlaying(true);
musicManager.notifyDataSetChanged();
custom Adapter getView Method code :
public class MusicManager extends BaseAdapter {
Context context;
List<Music> list;
LayoutInflater layoutInflater;
public MusicManager(Context context, List<Music> list) {
this.context = context;
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View view, ViewGroup parent) {
try{
layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ViewHolder viewHolder = new ViewHolder();
if (view == null){
view = layoutInflater.inflate(R.layout.list_music,null);
viewHolder.name = (TextView)view.findViewById(R.id.musicName);
viewHolder.artist = (TextView)view.findViewById(R.id.musicArtist);
viewHolder.image = (CircleImageView) view.findViewById(R.id.musicImage);
viewHolder.imagePlaying = (CircleImageView) view.findViewById(R.id.musicImagePlaying);
}else viewHolder = (ViewHolder) view.getTag();
if (list.size() > 0){
Music music = list.get(position);
viewHolder.name.setText(music.getName());
viewHolder.artist.setText(music.getArtist());
InputStream inputStream = context.getAssets().open(music.getImagePath());
Drawable drawable = Drawable.createFromStream(inputStream,null);
viewHolder.image.setImageDrawable(drawable);
Log.i("Tag", "getView: "+music.isPlaying());
if (music.isPlaying()){
viewHolder.imagePlaying.setVisibility(View.VISIBLE);
}
else viewHolder.imagePlaying.setVisibility(View.GONE);
}
}catch (Exception e){
// Log.i("Tag", "getView: "+e.toString());
}
return view;
}
private class ViewHolder{
TextView name;
TextView artist;
CircleImageView image;
CircleImageView imagePlaying;
}
}
how i can notify Music Manager for update objects on a item in list view ?