文章目录
传统ListView的适配器
public class FavorMusicAdapter extends BaseAdapter {
private List<FavorMusicBean> favorMusicList;
private ListView favor_lv_music;
private TextView item_music_num,item_music_song,item_music_singer,item_music_line,item_music_album,item_music_duration;
Context context;
LocalMusicAdapter.OnItemClickListener onItemClickListener;
/**
* 初始化实例
*/
public FavorMusicAdapter(Context context,List<FavorMusicBean> listData) {
this.context = context;
this.favorMusicList = listData;
}
public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
this.onItemClickListener = (LocalMusicAdapter.OnItemClickListener) onItemClickListener;
}
public interface OnItemClickListener{
public void OnItemClick(View view,int position);
}
@Override
public int getCount() {
return favorMusicList.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
/**
* 更新视图
*/
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view;
FavorMusicBean favorMusicBean = favorMusicList.get(position);
if (convertView == null) {
view = LayoutInflater.from(context).inflate(R.layout.item_music, null);
} else {
view = convertView;
}
//初始化控件
item_music_num = view.findViewById(R.id.item_music_num);
item_music_song = view.findViewById(R.id.item_music_song);
item_music_singer = view.findViewById(R.id.item_music_singer);
item_music_album = view.findViewById(R.id.item_music_album);
item_music_duration = view.findViewById(R.id.item_music_duration);
//根据请求到的数据更新视图
item_music_num.setText(favorMusicBean.getId());
item_music_song.setText(favorMusicBean.getSong());
item_music_singer.setText(favorMusicBean.getSinger());
item_music_album.setText(favorMusicBean.getAlbum());
item_music_duration.setText(favorMusicBean.getDuration());
return view;
}
}
RecycleView适配器
public class LocalMusicAdapter extends RecyclerView.Adapter<LocalMusicAdapter.LocalMusicViewHolder>{
Context context;
List<LocalMusicBean> mDatas;
OnItemClickListener onItemClickListener;
public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
this.onItemClickListener = onItemClickListener;
}
public interface OnItemClickListener{
public void OnItemClick(View view, int position);
}
public LocalMusicAdapter(Context context, List<LocalMusicBean> mDatas) {
this.context = context;
this.mDatas = mDatas;
}
/**
* 当需要新的ViewHolder来显示列表项时,会调用onCreateViewHolder方法去创建ViewHolder
* @param parent
* @param viewType
* @return
*/
@NonNull
@Override
public LocalMusicViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.item_music,parent,false);
LocalMusicViewHolder holder = new LocalMusicViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(@NonNull LocalMusicViewHolder holder, final int position) {
LocalMusicBean musicBean = mDatas.get(position);
holder.idTv.setText(musicBean.getId());
holder.songTv.setText(musicBean.getSong());
holder.singerTv.setText(musicBean.getSinger());
holder.albumTv.setText(musicBean.getAlbum());
holder.timeTv.setText(musicBean.getDuration());
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onItemClickListener.OnItemClick(v,position);
}
});
}
@Override
public int getItemCount() {
return mDatas.size();
}
/**
* 内部类
* 初始化控件
* 为每个holder对象添加 itemView
*/
class LocalMusicViewHolder extends RecyclerView.ViewHolder{
TextView idTv,songTv,singerTv,albumTv,timeTv;
public LocalMusicViewHolder(View itemView) {
super(itemView);
idTv = itemView.findViewById(R.id.item_music_num);
songTv = itemView.findViewById(R.id.item_music_song);
singerTv = itemView.findViewById(R.id.item_music_singer);
albumTv = itemView.findViewById(R.id.item_music_album);
timeTv = itemView.findViewById(R.id.item_music_duration);
}
}
}