版权声明:本文为博主原创文章,转载请注明出处 https://blog.csdn.net/a136447572/article/details/87972469
/**
* 共有的Adapter
*
*/
public abstract class CommonAdapter<T> extends BaseAdapter {
Context mContext;
List<T> mDataList;
public CommonAdapter(Context context, List<T> dataList){
this.mContext = context;
this.mDataList = dataList;
}
public Context getContext() {
return mContext;
}
public List<T> getDataList() {
return mDataList;
}
/**
* 添加数据源
* @param mDataList
*/
public void addDataList(List<T> mDataList){
this.mDataList.addAll(mDataList);
notifyDataSetChanged();
}
/**
* 清除数据
*/
public void clear(){
this.mDataList.clear();
}
@Override
public int getCount() {
return mDataList.size();
}
@Override
public Object getItem(int position) {
return mDataList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = convertView(position, convertView);
return convertView;
}
/**
* 重写convertView方法
*
* @param position
* @param convertView
* @return
*/
public abstract View convertView(int position, View convertView);
}
/**
* ApkInfo Adapter
*
*/
public class FileInfoAdapter extends CommonAdapter<FileInfo> {
/**
* 文件类型的标识
*/
private int mType = FileInfo.TYPE_APK;
public FileInfoAdapter(Context context, List<FileInfo> dataList) {
super(context, dataList);
}
public FileInfoAdapter(Context context, List<FileInfo> dataList, int type) {
super(context, dataList);
this.mType = type;
}
@Override
public View convertView(int position, View convertView) {
FileInfo fileInfo = getDataList().get(position);
if(mType == FileInfo.TYPE_APK){ //APK convertView
ApkViewHolder viewHolder = null;
if(convertView == null){
convertView = View.inflate(getContext(), R.layout.item_apk, null);
viewHolder = new ApkViewHolder();
viewHolder.iv_shortcut = (ImageView) convertView.findViewById(R.id.iv_shortcut);
viewHolder.iv_ok_tick = (ImageView) convertView.findViewById(R.id.iv_ok_tick);
viewHolder.tv_name = (TextView) convertView.findViewById(R.id.tv_name);
viewHolder.tv_size = (TextView) convertView.findViewById(R.id.tv_size);
convertView.setTag(viewHolder);
}else{
viewHolder = (ApkViewHolder) convertView.getTag();
}
if(getDataList() != null && getDataList().get(position) != null){
viewHolder.iv_shortcut.setImageBitmap(fileInfo.getBitmap());
viewHolder.tv_name.setText(fileInfo.getName() == null ? "" : fileInfo.getName());
viewHolder.tv_size.setText(fileInfo.getSizeDesc() == null ? "" : fileInfo.getSizeDesc());
//全局变量是否存在FileInfo
if(AppContext.getAppContext().isExist(fileInfo)){
viewHolder.iv_ok_tick.setVisibility(View.VISIBLE);
}else{
viewHolder.iv_ok_tick.setVisibility(View.GONE);
}
}
}
return convertView;
}
static class ApkViewHolder {
ImageView iv_shortcut;
ImageView iv_ok_tick;
TextView tv_name;
TextView tv_size;
}
}