BaseAdapter<T> 重写 createViewFromResource实现界面,刷新,加载,移除

  1   import java.util.ArrayList;
  2 import java.util.List;
  4 import android.content.Context;
  5 import android.view.LayoutInflater;
  6 import android.view.View;
  7 import android.view.ViewGroup;
  9 import com.lidroid.xutils.util.LogUtils;
 10
 11 /**
 12  * 基本的适配器,重写 createViewFromResource实现界面
 13  *
 14  * @author HZY
 15  *
 16  * @param <T>
 17  *            list存放的实体
 18  */
 19 public class BaseAdapter<T> extends android.widget.BaseAdapter {
 20     private Context mContext;
 21     private LayoutInflater mInflater;
 22     private List<T> mDatas = new ArrayList<T>();
 23
 24     public BaseAdapter(Context mContext, List<T> mDatas) {
 25         this.mContext = mContext;
 26         this.mDatas = mDatas;
 27         this.mInflater = LayoutInflater.from(mContext);
 28     }
 29
 30     public Context getContext() {
 31         return this.mContext;
 32     }
 33
 34     public LayoutInflater getLayoutInflater() {
 35         return this.mInflater;
 36     }
 37
 38     /**
 39      * 刷新 41      * @param mDatas
 42      */
 43     public void refresh(List<T> mDatas) {
 44         if (mDatas != null) {
 45             LogUtils.d("size=>" + mDatas.size());
 46         }
 47         this.mDatas = mDatas;
 48         notifyDataSetChanged();
 49     }
 50
 51     /**
 52      * 加载更多 54      * @param mDatas
 55      */
 56     public void loadMore(List<T> mDatas) {
 57         if (mDatas == null) {
 58             this.mDatas = mDatas;
 59         } else {
 60             this.mDatas.addAll(mDatas);
 61         }
 62
 63         notifyDataSetChanged();
 64     }
 65
 66     /**
 67      * 移除 69      * @param date
 70      */
 71     public void remove(T date) {
 72         if (mDatas != null) {
 73             mDatas.remove(date);
 74             notifyDataSetChanged();
 75         }
 77     }
 78
 79     /**
 80      * 移除 82      * @param position
 83      */
 84     public void remove(int position) {
 85         if (mDatas != null && mDatas.size() > position) {
 86             mDatas.remove(position);
 87             notifyDataSetChanged();
 88         }
 89     }
 90
 91     @Override
 92     public int getCount() {
 93         return mDatas == null ? 0 : mDatas.size();
 94     }
 95
 96     @Override
 97     public Object getItem(int position) {
 98         return mDatas == null ? null : mDatas.get(position);
 99     }
100
101     @Override
102     public long getItemId(int position) {
103         return position;
104     }
105
106     @Override
107     public View getView(int position, View convertView, ViewGroup parent) {
108         return createViewFromResource(position, convertView, parent);
109     }
110
111     protected View createViewFromResource(int position, View convertView,
112             ViewGroup parent) {
113         // TODO Auto-generated method stub
114         return null;
115     }
116
117 }
时间: 2024-10-12 21:14:27

BaseAdapter<T> 重写 createViewFromResource实现界面,刷新,加载,移除的相关文章

Android UI--自定义ListView(实现下拉刷新+加载更多)

http://blog.csdn.net/wwj_748/article/details/12512885 Android UI--自定义ListView(实现下拉刷新+加载更多) 关于实现ListView下拉刷新和加载更多的实现,我想网上一搜就一堆.不过我就没发现比较实用的,要不就是实现起来太复杂,要不就是不健全的.因为小巫近期要开发新浪微博客户端,需要实现ListView的下拉刷新,所以就想把这个UI整合到项目当中去,这里只是一个demo,可以根据项目的需要进行修改. 就不要太在乎界面了哈:

[Android学习系列2]用webview写界面,加载本地js,js,html文件

以jquery mobile为例 1.在android界面拖入一个webview,然后添加一个internet权限 <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <uses-permission android:name="android.permission.INTERNET"/> <application ........

界面动态加载时报NullPointException

今天在做环境监测的模拟软件时,登陆页面报NullPointException 一般像我们初始化Button时,是Button btn=(Button)findViewById(R.id.button1); 其实完整的写法应该是 Button btn=(Button)this.findViewById(R.id.button1); 但是在onCreate里面,this可以省略. 在自定义的界面动态加载时,需要这样写: EditText et=(EditText)layout.findViewByI

启动界面的加载

其实今天很难过,一个菜鸟级别的ios程序员,同时也是一个感情不顺的loser,  昨天都睡公司,启动界面的加载就从昨天下午搞到今天下午四点,一边压制住情感的波动,一边要去解决觉这种本来就脑残的问题,我想问问自己,男人要不要这样,生活要不要这样苦逼自己,很想放假,很想辞职,来一场没有目的的旅行,可是是菜鸟,菜鸟的特点除了没技术还有就是没有钱嘛,怎么宣泄呢,咳,我知道,今天过不去这个坎,明天照样过不去,那要么死,要么过去,不能回头. 说说这个启动图片吧,xcode6.2  是有一个工具的,Launc

cocos2dx loading界面 预加载资源 与 资源释放

预加载图片: 1.CCTextureCache::sharedTextureCache()->addImage("icon.png"); 2.CCTextureCache::sharedTextureCache()->addImageAsync("icon.png",this,callfuncO_selector(MainLayerLoading::loadingCallBack)); 使用加载的缓存图片: CCSprite* sp =CCSprite:

emlog通过pjax实现无刷新加载网页--完美解决cnzz统计和javascript失效问题

想要更详细了解pjax,需要查看官网 或者看本站文章:jQuery.pjax.js:使用AJAX和pushState无刷新加载网页(官网教程中文翻译) 效果看本站,音乐无刷新播放,代码高亮和复制js加载成功- 准备文件 编辑模板 header.php 的 head 添加必要文件: jquery-1.11.1.min.js:百度网盘下载 jquery.pjax-1.8.2.min.js:百度网盘下载 下载到模板的 scripts 目录下后将下面两句添加到</head>所有script标签的最前面

移动端tab滑动和上下拉刷新加载

移动端tab滑动和上下拉刷新加载 查看demo(请在移动端模式下查看) 查看代码 开发该插件的初衷是,在做一个项目时发现现在实现移动端tab滑动的插件大多基于swiper,swiper的功能太强大而我只要一个小小的tab滑动功能,就要引入200+k的js这未免太过浪费.而且swiper是没有下拉刷新功能的,要用swiper实现下拉刷新还得改造一番.在实现功能的同时产生了不少bug.要是在引入一个下拉刷新的插件又难免多了几十kb的js.而且这些插件对dom结构又是有一定要求的,一不小心就有bug.

10年Android老司机教你打造独一无二的刷新加载框架

首先我们给出如下几个参数,后面要用: 10年Android老司机教你打造独一无二的刷新加载框架既然是刷新,我们的滚动肯定是在 父view 之前的.所以我们需要在 onNestedPreScroll 这个方法里面写上我们所需要改动的x,y值. 我们需要用 父view 去拦截它.我们需要判断 dy 的值是否大于0,因为大于0是刷新操作,小于0是加载操作.然后我们需要判断 recyclerview 是否是纵向的而不是横向的. 10年Android老司机教你打造独一无二的刷新加载框架上拉加载 上面我也说

jquery完成界面无刷新加载登陆注册

昨天公司说官网的登陆注册每次要跳转到另一个界面,能不能做一个简单的,在界面弹出一个框框登陆,我想了想做了这么一个案例,大家来看看成不成 贴上代码,实现了在同一个弹出窗上加载了登陆注册功能!可自由点击!当然样式丑了一些!还请见谅!demo在下面 1这里是html内容 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1