ListView Adapter 的简单使用
2020-07-10 本文已影响0人
华人有为
前言:ListView 是一个“古老的”列表视图实现方案,推荐大家使用RecyclerView 这篇短文适合那些初学安卓的开发者
package you package name;
import android.content.Context;
import android.text.format.Formatter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.mobileplayer.R;
import com.bobo.mobileplayer.domain.MediaItem;
import com.bobo.mobileplayer.utils.Utils;
import java.util.ArrayList;
/**
* Created by Leon on 2015/1/7.
* Functions: VideoPager的适配器
*/
public class VideoPagerAdapter extends BaseAdapter {
private final boolean isVideo;
private Context context;
private final ArrayList<MediaItem> mediaItems;
/**
* 通常我们通过构造参数把数据源传递过来
*/
public VideoPagerAdapter(Context context, ArrayList<MediaItem> mediaItems,boolean isVideo) {
this.context = context;
this.mediaItems = mediaItems;
this.isVideo = isVideo;
}
@Override
public int getCount() {
return mediaItems.size();
}
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHoder viewHoder;
if (convertView == null){
convertView = View.inflate(context, 你的item布局文件, null);
viewHoder = new ViewHoder();
viewHoder.iv_icon = (ImageView)convertView.findViewById(R.id.iv_icon);
viewHoder.tv_name = (TextView)convertView.findViewById(R.id.tv_name);
viewHoder.tv_time = (TextView)convertView.findViewById(R.id.tv_time);
viewHoder.tv_size = (TextView)convertView.findViewById(R.id.tv_size);
convertView.setTag(viewHoder);
}else {
viewHoder = (ViewHoder)convertView.getTag();
}
//根据position得到列表中对应位置的数据
MediaItem mediaItem = mediaItems.get(position);
viewHoder.tv_name.setText(mediaItem.getName());
viewHoder.tv_size.setText(Formatter.formatFileSize(context,mediaItem.getSize()));
viewHoder.tv_time.setText(mediaItem.getDuration()));
return convertView;
}
static class ViewHoder{
ImageView iv_icon;
TextView tv_name;
TextView tv_time;
TextView tv_size;
}
}