- 浏览: 76343 次
- 性别:
- 来自: 西安
文章分类
- 全部博客 (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 764转载: Android自动化测试--Espresso框架 ... -
浅谈android中仅仅使用一个TextView实现高仿京东,淘宝各种倒计时
2016-11-01 09:54 1094转载:http://blog.csdn.net/u0130 ... -
利用apktool等工具发编译android apk
2016-10-25 09:15 752这个是我的csdn中的一篇关于android app反编译的文 ... -
Error:Execution failed for task ':app:mergeDebugResources'. > Some file crunchin
2016-10-08 10:30 1043向studio中导入微信支付Demo的时候报错了,具体如图: ... -
android studio实用快捷键收集
2016-09-30 17:51 495本人用android studio刚开始,做一下笔记,只适用于 ... -
android中事件分发机制
2016-09-22 11:52 591转载自:http://www.cnblogs.com/linj ... -
一个对sharedpreferences 数据进行加密的开源库
2016-09-18 14:30 659http://www.cnblogs.com/zhaoyanj ... -
LinerLayout滑动后停在顶部
2016-09-18 12:08 690转载自:http://blog.csdn.net/ff2008 ... -
android studio入门知识
2016-09-06 18:11 716http://blog.csdn.net/jdsjlzx/ar ... -
android图片加载OOM解决方案
2016-08-30 15:17 496转载自:http://www.apkbus.com/blog- ... -
android oom连带问题,以及tag错位问题结局方案
2016-08-30 13:48 679http://www.apkbus.com/blog-8430 ... -
android新手指导
2016-08-30 11:59 407http://www.apkbus.com/forum.php ... -
android app自动化测试
2016-07-12 15:51 523android sdk的lib目录下有个monkeyrunne ... -
利用BadgeView实现数字提醒效果
2016-07-06 16:38 980BadgeView是一个第三方开源库, github地址:ht ... -
android端图片缓存实现,特别适用于listview来回滚动
2016-07-02 10:40 701转载自: http://www.open-open.com/l ... -
android文件存储文本
2016-05-17 17:26 507/** * 写入文本 */ private void ... -
android全局异常捕获并发送异常到邮箱
2016-05-12 11:41 1127public class AppException exten ... -
android第三方框架xutils的使用
2016-05-12 11:35 853这里写一些网络请求的相关 //初始化相关参数和对象 publi ... -
android端版本更新
2016-05-12 11:26 739整个思路,先判断服务端当前版本是不是高于本地版本,高的话可以选 ... -
android端从相册或者拍照读取图片
2016-04-16 16:45 834android端从相册或者拍照读取图片,见demo
相关推荐
在Android开发中,ListView是一个非常重要的组件,常用于展示大量数据列表。BaseAdapter则是与ListView配合使用的数据适配器,负责将数据绑定到ListView的各个视图上。本篇文章将深入探讨ListView与BaseAdapter的...
在Android开发中,ListView是应用最广泛的视图组件之一,尤其在展示大量数据时,它以列表形式高效地展示信息。本教程将深入探讨ListView的单击事件处理,以及如何在实际项目中实现这一功能。 首先,理解ListView的...
19Android-16-listviewBaseAdapter.mp4
在这个"Android之ListView+BaseAdapter左右按键切换"的项目中,我们将会深入探讨如何利用ListView结合BaseAdapter实现通过键盘左右按键来切换并更新ListView中的数据。BaseAdapter是Android系统提供的一种适配器,它...
本篇文章将深入探讨如何在Android中使用BaseAdapter来实现ListView的数据绑定。BaseAdapter是Android系统提供的一种通用适配器,它允许我们将自定义的数据集与ListView进行关联。 首先,理解ListView的工作原理至关...
而ListView是Android UI设计中常用的一个组件,用于展示大量的列表数据。将SQLite与ListView结合,可以实现动态加载、高效展示和操作数据库中的数据。 在Android开发中,当需要展示大量数据时,通常会用到ListView...
本篇主要讲解如何在Android Studio中使用ListView,并结合自定义的BaseAdapter来实现数据的绑定和显示。 首先,我们需要在布局文件中添加ListView组件。在res/layout目录下的xml布局文件中,可以这样定义一个...
在Android开发中,ListView是展示大量数据常用的组件,而BaseAdapter是它的重要伙伴,用于将数据绑定到ListView的各个Item视图上。本教程通过一个Eclipse下的Android工程实例,详细讲解了BaseAdapter的使用方法以及...
3. **适配器的使用**:在适配器类中,如`ArrayAdapter`或自定义的`BaseAdapter`,你需要使用`getView()`方法来返回ListView项的视图。确保在该方法中加载你刚才创建的布局文件,并正确地绑定数据。 4. **性能优化**...
在Android Studio中,我们通常会创建一个自定义的Adapter,继承自BaseAdapter或者ArrayAdapter,重写其方法以提供数据和视图的绑定。 对于嵌套的ListView,我们需要创建两个Adapter,一个用于父ListView,另一个...
在Android开发中,ListView是一种常用的组件,用于展示大量的数据列表。然而,当列表项过多时,滚动时表头(Header)会随着滚动消失,给用户查看和理解数据带来不便。为了解决这个问题,开发者通常会实现一个固定...
1. 自定义适配器(Adapter):适配器是连接ListView与数据源的关键,我们可以扩展BaseAdapter或ArrayAdapter,根据需要重写getView()方法来定制每个列表项的布局和显示。 2. 自定义滚动效果:通过重写ListView的...
在Android开发中,ListView是一个非常重要的组件,常用于展示大量数据列表。本示例将详细介绍如何在Android Studio中创建一个简单的ListView。首先,我们需要理解ListView的基本结构和工作原理。 ListView是一个可...
首先,`BaseAdapter`是Android SDK提供的一种适配器,它是一个抽象类,为各种视图(如ListView)提供了数据绑定的功能。开发者需要继承BaseAdapter,并实现其四个主要方法:`getCount()`、`getItem(int position)`、...
Android listview viewpager 滑动 跳动 冲突解决 ListView中嵌套ViewPage有或者滑动手势冲突解决 blog 地址 : http://blog.csdn.net/aaawqqq/article/details/43824631
在Android开发中,ListView、SQLite和BaseAdapter是三个至关重要的组件,它们共同协作,使得应用程序能够展示和管理大量数据。ListView是一种可滚动的视图,用于显示一系列项,而SQLite是一个轻量级的数据库系统,...
`BaseAdapter`是Android SDK提供的一种适配器,它是所有自定义ListView适配器的基础类,用于将数据绑定到ListView上。本示例"BaseAdapter_listview"正是通过自定义BaseAdapter来实现ListView的展示。 首先,我们要...
在Android开发中,ListView是一种非常常见的控件,用于展示大量数据列表。它的网格布局模式使得数据以多列的形式展示,增强了界面的可读性和用户体验。本文将深入探讨如何在Android中实现一个基于ArrayAdapter的网格...
在Android开发中,ListView是一种常用的组件,用于展示大量可滚动的数据。本教程将重点讲解如何在ListView中实现下拉刷新和动态加载数据的功能,同时处理图文混排的问题。 首先,我们要引入SwipeRefreshLayout库,...
在Android开发中,ListView是一个非常重要的组件,它用于展示大量数据列表,通常配合适配器(Adapter)使用。本示例“android listView 适配器demo”将详细讲解如何利用适配器机制来动态填充ListView的数据。 首先...