package com.airplayer.adapter;
import android.content.Context;
import android.net.Uri;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.airplayer.R;
import com.airplayer.model.Album;
import com.facebook.drawee.view.SimpleDraweeView;
import com.squareup.picasso.Picasso;
import java.util.List;
/**
* Created by ZiyiTsang on 15/6/11.
* an abstract class, which is used by recycler view that shows a album grid view
* 一个以 grid view 显示专辑类型 item 的抽象类
*/
public class AlbumAdapter extends AirAdapter {
public AlbumAdapter(Context context, List<Album> list) {
super(context, list);
}
/* implement onCreateItemViewHolder to set up every item view holder */
/* 通过实现超类 onCreateItemViewHolder 抽象方法 来设置这种 recycler view 的每一个 item */
@Override
public AirItemViewHolder onCreateItemViewHolder(ViewGroup parent) {
return new AlbumItemViewHolder(getLayoutInflater()
.inflate(R.layout.recycler_item_album, parent, false));
}
/* over ride onBindViewHolder to set content in every item/header view */
/* 重写 onBindViewHolder 来设置每一个 header 或 item 显示的内容 */
/* 由于 使用 album adapter 的 recyclerView 的item 基本不会改变,而 header 会随时改变
* 所以把 item 的 内容配置放在这里,而 header 则通过调用超类的抽象方法实现 */
@Override
public void onBindItemViewHolder(AirItemViewHolder itemHolder, int position) {
AlbumItemViewHolder albumViewHolder = (AlbumItemViewHolder) itemHolder;
Album item = (Album) getList().get(position - 1);
albumViewHolder.textView.setText(item.getTitle());
albumViewHolder.artistText.setText(item.getAlbumArtist());
albumViewHolder.draweeView.setImageURI(item.getAlbumArtUri());
}
// item holder which would not change in sub class
public class AlbumItemViewHolder extends AirItemViewHolder {
SimpleDraweeView draweeView;
TextView textView;
TextView artistText;
public AlbumItemViewHolder(View itemView) {
super(itemView);
draweeView = (SimpleDraweeView) itemView.findViewById(R.id.album_art);
textView = (TextView) itemView.findViewById(R.id.album_title);
artistText = (TextView) itemView.findViewById(R.id.album_artist_name);
}
}
}