【ps:CommonAdapter基于ViewHolder工具类】

CommonAdapter.java

package cn.edu.bzu.util;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView; import java.util.List; import cn.edu.bzu.listview_demo.R; /**
* CommonAdapter makes Common extends BaseAdapter
* Created by monster on 2015/5/3.
*/
public abstract class CommonAdapter<T> extends BaseAdapter {
protected Context mContext;
protected List<T> mDatas;
protected LayoutInflater mInflater; public CommonAdapter(Context context,List<T>datas){
this.mContext=context;
this.mDatas=datas;
mInflater=LayoutInflater.from(context);
}
@Override
public int getCount() {
return mDatas.size();
} @Override
public T getItem(int position) {
return mDatas.get(position);
} @Override
public long getItemId(int position) {
return position;
} @Override
public View getView(int position, View convertView, ViewGroup parent){
ViewHolder holder=ViewHolder.get(mContext,convertView,parent, R.layout.listview_item,position);
convert(holder,getItem(position));
return holder.getConvertView();
}
public abstract void convert(ViewHolder holder,T t);
}

MyAdapterWithCommonViewHolder.java

package cn.edu.bzu.adapter;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView; import java.util.List; import cn.edu.bzu.entity.Bean;
import cn.edu.bzu.listview_demo.R;
import cn.edu.bzu.util.CommonAdapter;
import cn.edu.bzu.util.ViewHolder; /**
* Created by monster on 2015/4/19.
* extends CommonAdapter
*/
public class MyAdapterWithCommonViewHolder extends CommonAdapter<Bean> {
// private LayoutInflater mInflater; //LayoutInflater是用来找layout下xml布局文件,并且实例化
// private List<Bean> mlist;
// private Context mcontext;
public MyAdapterWithCommonViewHolder(Context context, List<Bean> mDatas) {
super(context,mDatas);
} @Override
public void convert(ViewHolder holder, Bean bean) {
((TextView)holder.getView(R.id.id_title)).setText(bean.getTitle());
((TextView)holder.getView(R.id.id_desc)).setText(bean.getDesc());
((TextView)holder.getView(R.id.id_time)).setText(bean.getDate());
((TextView)holder.getView(R.id.id_phone)).setText(bean.getPhone());
} // @Override
// public int getCount() {
// return mlist.size();
// }
//
// @Override
// public Object getItem(int position) {
// return mlist.get(position);
// }
//
// @Override
// public long getItemId(int position) {
// return position;
// } // @Override
// public View getView(int position, View convertView, ViewGroup parent) {
// ViewHolder holder=ViewHolder.get(mContext,convertView,parent,R.layout.listview_item,position);
// ((TextView)holder.getView(R.id.id_title)).setText(mDatas.get(position).getTitle());
// ((TextView)holder.getView(R.id.id_desc)).setText(mDatas.get(position).getDesc());
// ((TextView)holder.getView(R.id.id_time)).setText(mDatas.get(position).getDate());
// ((TextView)holder.getView(R.id.id_phone)).setText(mDatas.get(position).getPhone());
// return holder.getConvertView();
// } }

【源代码下载链接:https://github.com/monsterLin/CommonAdapter_Package

ListView优化-通用CommonAdapter编写备份的更多相关文章

  1. ListView优化-通用ViewHolder编写备份

    ViewHolder.java package cn.edu.bzu.util; import android.content.Context; import android.util.SparseA ...

  2. JVM性能优化系列-(4) 编写高效Java程序

    4. 编写高效Java程序 4.1 面向对象 构造器参数太多怎么办? 正常情况下,如果构造器参数过多,可能会考虑重写多个不同参数的构造函数,如下面的例子所示: public class FoodNor ...

  3. listview优化 汇总

    1,listview加载性能优化ViewHolder 转自: http://blog.csdn.net/jacman/article/details/7087995 在android开发中Listvi ...

  4. Android 常驻与很驻型广播的差别,及ListView优化,Android新手基本知识巩固

    1.常驻型广播  常驻型广播,当你的应用程序关闭了,假设有广播信息来,你写的广播接收器相同的能接受到.  他的注冊方式就是在你的应用程序中的AndroidManifast.xml进行注冊. 通常说这样 ...

  5. 内存泄露--contentView缓存使用与ListView优化

    引起Android内存泄露有很多种原因,下面罗列了一些问题,以后会一一解决 1.构造Adapter时没有使用缓存convertView(衍生出ListView优化问题) 2.查询数据库游标没有关闭 3 ...

  6. Android——ListView优化

    1.ListView基本概念 列表显示需要三个元素: ListView:用来展示列表的View. 适配器:用来把数据映射到ListView上 数据:具体的将被映射的字符串,图片或基本组件 适配器类型分 ...

  7. Android零基础入门第43节:ListView优化和列表首尾使用

    原文:Android零基础入门第43节:ListView优化和列表首尾使用 前面连续几期都在学习ListView的各种使用方法,如果细心的同学可能会发现其运行效率是有待提高的,那么本期就来一起学习有哪 ...

  8. Adaptert Listview 优化

    这次是关于Listview的优化的,之前一直采用愚蠢的方式来使用listview,出现的情况就是数据多的话下拉的时候会出现卡顿的情况,内存占用多.所以学习了关于listview的优化,并且这也是普遍使 ...

  9. Android开发之ListView详解 以及简单的listView优化

    ListView列表视图 最常用的控件之一,使用场景例如:微信,手机QQ等等. android:divider:每个item之间的分割线,可以使用图片或者色值. android:dividerHeig ...

随机推荐

  1. C#.NET 大型通用信息化系统集成快速开发平台 4.0 版本 - 拆分表、联系方式的拆分?

    当用户数据有接近10万时,而且多表的关联也比较频繁时,能把大表拆为小表,也会提高系统的性能,I/O.运算性能.当然以后用户数据会更大可能会到30-40万以上,所有有能力时适当拆表,分分合合,合合分分也 ...

  2. eap

    本文介绍了eap  

  3. 建立mvc过程

    1.public class   dbContext:Dbcontext { private readonly static string CONNECTION_STRING="name=d ...

  4. FineUI小技巧(2)将表单内全部字段禁用、只读、设置无效标识

    需求描述 对表单内的所有字段进行操作也是常见需求,这些操作有: 禁用:表单字段变灰,不响应用户动作. 只读:表单字段不变灰,但不接受用户输入(实际上是设置DOM节点的readonly属性),有触发器的 ...

  5. PRML读书会第十三章 Sequential Data(Hidden Markov Models,HMM)

    主讲人 张巍 (新浪微博: @张巍_ISCAS) 软件所-张巍<zh3f@qq.com> 19:01:27 我们开始吧,十三章是关于序列数据,现实中很多数据是有前后关系的,例如语音或者DN ...

  6. nios II--实验1——hello_world硬件部分

    hello_world 硬件开发 新建原理图 1.打开Quartus II 11.0,新建一个工程,File -> New Project Wizard…,忽略Introduction,之间单击 ...

  7. B树和B+树

    当数据量大时,我们如果用二叉树来存储的会导致树的高度太高,从而造成磁盘IO过于频繁,进而导致查询效率下降.因此采用B树来解决大数据存储的问题,很多数据库中都是采用B树或者B+树来进行存储的.其目的就是 ...

  8. 为什么要加入<!doctype html>这个文档声明——IE怪异模式

    调试了很久,发现了一个非常细微但又十分重要的问题,又一次我在对于文档声明类型的时候,声明了如下类型 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1 ...

  9. JS 获取上一层目录

    派生到我的代码片 <script type="text/javascript"> //返回当前工作目录 function GetCurrDir(){ var pathN ...

  10. android 按钮点击效果实现 在studio下出现的错误

    在照做上一篇随笔的时候 在studio下为了方便我在写完一个 btn_select.xml 文件后直接粘贴了三个文件到drawable下 结果问题来了 总是报这样一个错误: Resource is n ...