- 浏览: 77169 次
- 性别:
- 来自: 西安
-
文章分类
- 全部博客 (101)
- Android (45)
- java中多线程的实现 (1)
- Runnable (2)
- Thread (1)
- TCP网络编程 (1)
- PHP (1)
- java (4)
- JDBC (1)
- oauth登录 (1)
- 中文乱码 (1)
- Ajax (1)
- web (2)
- Mysql (2)
- HTML5 (0)
- HTML5 (1)
- entity not found (1)
- JQuery (2)
- 使用jsp和Servlet实现一个验证码 (1)
- 验证码 (1)
- 异常 (1)
- webService (2)
- not insert异常 (1)
- JAVAmail (1)
- 选中分享 (1)
- 控件 (1)
- 方法 (1)
- listView (1)
- android控件 (1)
- jqueryMobile (1)
- servlet开发中文乱码解决方案 (1)
- servlet开发中文乱码解决方案 (1)
- web文本框初始提示 (1)
- web文本框初始提示 (0)
- xml (1)
- java中的加密技术 (1)
- 互联网 (1)
- mysql数据库 (1)
- java单例模式 (1)
- gson转json (1)
最新评论
/**
* BaseAdapter的抽取
* @author xu-pc
*
* @param <T>
* 泛型数据的格式
* 需实现getHolder()
*/
public abstract class SuperBaseAdapter<T> extends BaseAdapter{
private List<T> mData;
/*public SuperBaseAdapter(List<T> list) {
this.mData = list;
}*/
public SuperBaseAdapter(List<T> data) {
this.mData = data;
}
@Override
public int getCount() {
return mData.size();
}
@Override
public Object getItem(int position) {
return mData.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
BaseHolder holder = null;
if(convertView == null){
holder = getHolder();
}else{
holder = (BaseHolder) convertView.getTag();
}
holder.setData(mData.get(position));
return holder.convertView;
}
public abstract BaseHolder getHolder();
}
/**
* 抽取的holder
* @author xu-pc
*
* @param <T>
* 数据的泛型需要在子类中设定
*/
public abstract class BaseHolder<T>{
/**
* 1.布局文件 convertView
* 2.holder 绑定
* 3.数据mData
*/
public View convertView;
public T mData;
public Context context;
public BaseHolder() {
convertView = initView();
convertView.setTag(this);//绑定tag
}
public void setData(T dada){
this.mData = dada;
refreshView();
}
public abstract void refreshView();//数据设置
public abstract View initView();
}
//使用案例
/**
* 设置ListView的适配器
* @author zhenggangyao
*
*/
class OrderReceiverAdapter extends SuperBaseAdapter<OrderReceivertDTO>{
public OrderReceiverAdapter(List<OrderReceivertDTO> data) {
super(data);
}
@Override
public BaseHolder getHolder() {
return new OrderReveiverHolder();
}
}
public class OrderReveiverHolder extends BaseHolder<OrderReceivertDTO> {
private TextView tv_time;//发件的日期时间
private TextView tv_type;//快件类型
private TextView tv_name;//发件人姓名
private TextView tv_phone;//发件人电话
private TextView tv_address;//发件人详细地址
@Override
public void refreshView() {
tv_time.setText(mData.getSendConpany());
tv_type.setText(mData.getPackageClassName());
tv_name.setText(mData.getSendName());
tv_phone.setText(mData.getSendPhone());
tv_address.setText(mData.getSendAddress());
}
@Override
public View initView() {
View view = View.inflate(AppContext.getInstance(), R.layout.item_fragment_main, null);
tv_time = (TextView) view.findViewById(R.id.txt_date);
tv_type = (TextView) view.findViewById(R.id.txt_receiver_state);
tv_name = (TextView) view.findViewById(R.id.txt_name);
tv_phone = (TextView) view.findViewById(R.id.txt_phonenum);
tv_address = (TextView) view.findViewById(R.id.txt_address);
return view;
}
}
* BaseAdapter的抽取
* @author xu-pc
*
* @param <T>
* 泛型数据的格式
* 需实现getHolder()
*/
public abstract class SuperBaseAdapter<T> extends BaseAdapter{
private List<T> mData;
/*public SuperBaseAdapter(List<T> list) {
this.mData = list;
}*/
public SuperBaseAdapter(List<T> data) {
this.mData = data;
}
@Override
public int getCount() {
return mData.size();
}
@Override
public Object getItem(int position) {
return mData.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
BaseHolder holder = null;
if(convertView == null){
holder = getHolder();
}else{
holder = (BaseHolder) convertView.getTag();
}
holder.setData(mData.get(position));
return holder.convertView;
}
public abstract BaseHolder getHolder();
}
/**
* 抽取的holder
* @author xu-pc
*
* @param <T>
* 数据的泛型需要在子类中设定
*/
public abstract class BaseHolder<T>{
/**
* 1.布局文件 convertView
* 2.holder 绑定
* 3.数据mData
*/
public View convertView;
public T mData;
public Context context;
public BaseHolder() {
convertView = initView();
convertView.setTag(this);//绑定tag
}
public void setData(T dada){
this.mData = dada;
refreshView();
}
public abstract void refreshView();//数据设置
public abstract View initView();
}
//使用案例
/**
* 设置ListView的适配器
* @author zhenggangyao
*
*/
class OrderReceiverAdapter extends SuperBaseAdapter<OrderReceivertDTO>{
public OrderReceiverAdapter(List<OrderReceivertDTO> data) {
super(data);
}
@Override
public BaseHolder getHolder() {
return new OrderReveiverHolder();
}
}
public class OrderReveiverHolder extends BaseHolder<OrderReceivertDTO> {
private TextView tv_time;//发件的日期时间
private TextView tv_type;//快件类型
private TextView tv_name;//发件人姓名
private TextView tv_phone;//发件人电话
private TextView tv_address;//发件人详细地址
@Override
public void refreshView() {
tv_time.setText(mData.getSendConpany());
tv_type.setText(mData.getPackageClassName());
tv_name.setText(mData.getSendName());
tv_phone.setText(mData.getSendPhone());
tv_address.setText(mData.getSendAddress());
}
@Override
public View initView() {
View view = View.inflate(AppContext.getInstance(), R.layout.item_fragment_main, null);
tv_time = (TextView) view.findViewById(R.id.txt_date);
tv_type = (TextView) view.findViewById(R.id.txt_receiver_state);
tv_name = (TextView) view.findViewById(R.id.txt_name);
tv_phone = (TextView) view.findViewById(R.id.txt_phonenum);
tv_address = (TextView) view.findViewById(R.id.txt_address);
return view;
}
}
发表评论
-
Android自动化测试--Espresso框架使用
2016-11-01 10:02 774转载: Android自动化测试--Espresso框架 ... -
浅谈android中仅仅使用一个TextView实现高仿京东,淘宝各种倒计时
2016-11-01 09:54 1102转载:http://blog.csdn.net/u0130 ... -
利用apktool等工具发编译android apk
2016-10-25 09:15 763这个是我的csdn中的一篇关于android app反编译的文 ... -
Error:Execution failed for task ':app:mergeDebugResources'. > Some file crunchin
2016-10-08 10:30 1049向studio中导入微信支付Demo的时候报错了,具体如图: ... -
android studio实用快捷键收集
2016-09-30 17:51 503本人用android studio刚开始,做一下笔记,只适用于 ... -
android中事件分发机制
2016-09-22 11:52 597转载自:http://www.cnblogs.com/linj ... -
一个对sharedpreferences 数据进行加密的开源库
2016-09-18 14:30 668http://www.cnblogs.com/zhaoyanj ... -
LinerLayout滑动后停在顶部
2016-09-18 12:08 697转载自:http://blog.csdn.net/ff2008 ... -
android studio入门知识
2016-09-06 18:11 723http://blog.csdn.net/jdsjlzx/ar ... -
android图片加载OOM解决方案
2016-08-30 15:17 503转载自:http://www.apkbus.com/blog- ... -
android oom连带问题,以及tag错位问题结局方案
2016-08-30 13:48 684http://www.apkbus.com/blog-8430 ... -
android新手指导
2016-08-30 11:59 416http://www.apkbus.com/forum.php ... -
android app自动化测试
2016-07-12 15:51 530android sdk的lib目录下有个monkeyrunne ... -
利用BadgeView实现数字提醒效果
2016-07-06 16:38 989BadgeView是一个第三方开源库, github地址:ht ... -
android端图片缓存实现,特别适用于listview来回滚动
2016-07-02 10:40 711转载自: http://www.open-open.com/l ... -
android文件存储文本
2016-05-17 17:26 515/** * 写入文本 */ private void ... -
android全局异常捕获并发送异常到邮箱
2016-05-12 11:41 1138public class AppException exten ... -
android第三方框架xutils的使用
2016-05-12 11:35 861这里写一些网络请求的相关 //初始化相关参数和对象 publi ... -
android端版本更新
2016-05-12 11:26 751整个思路,先判断服务端当前版本是不是高于本地版本,高的话可以选 ... -
android端从相册或者拍照读取图片
2016-04-16 16:45 840android端从相册或者拍照读取图片,见demo
相关推荐
在Android开发中,ListView是一种常用的组件,用于展示大量的数据列表。在处理动态数据时,我们通常需要自定义适配器来绑定数据。BaseAdapter作为ListView的抽象基类,是自定义适配器的一种常见选择。本篇文章将深入...
BaseAdapter是Android SDK提供的一个基础适配器类,开发者需要继承它并重写其中的方法,如`getView()`,以便将数据绑定到ListView或GridView的每个Item上。然而,BaseAdapter的直接使用往往会导致性能问题,因为每次...
在Android开发中,ListView是一个非常重要的组件,常用于展示大量数据列表。本资源"安卓listview相关相关-EuclidListView滑动和点击进去其他页面特效.zip"似乎包含了一个名为"EuclidListView"的自定义ListView实现,...
在Android应用开发中,Adapter类起着至关重要的作用,它是数据与视图之间的桥梁,使得数据可以被适配并显示在ListView、GridView等组件上。Android系统遵循MVC(Model-View-Controller)模式,Activity作为...
在Android应用开发中,`ListView`是一个极为常见的组件,它被广泛应用于展示各种列表数据,如资讯列表、联系人列表、消息列表等。由于`ListView`的高频率使用,如何对其进行有效的优化,以提高性能并简化代码逻辑变...