import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.lidroid.xutils.util.LogUtils; /**
* 基本的适配器,重写 createViewFromResource实现界面
*
* @author HZY
*
* @param <T>
* list存放的实体
*/
public class BaseAdapter<T> extends android.widget.BaseAdapter {
private Context mContext;
private LayoutInflater mInflater;
private List<T> mDatas = new ArrayList<T>(); public BaseAdapter(Context mContext, List<T> mDatas) {
this.mContext = mContext;
this.mDatas = mDatas;
this.mInflater = LayoutInflater.from(mContext);
} public Context getContext() {
return this.mContext;
} public LayoutInflater getLayoutInflater() {
return this.mInflater;
} /**
* 刷新 * @param mDatas
*/
public void refresh(List<T> mDatas) {
if (mDatas != null) {
LogUtils.d("size=>" + mDatas.size());
}
this.mDatas = mDatas;
notifyDataSetChanged();
} /**
* 加载更多 * @param mDatas
*/
public void loadMore(List<T> mDatas) {
if (mDatas == null) {
this.mDatas = mDatas;
} else {
this.mDatas.addAll(mDatas);
} notifyDataSetChanged();
} /**
* 移除 * @param date
*/
public void remove(T date) {
if (mDatas != null) {
mDatas.remove(date);
notifyDataSetChanged();
}
} /**
* 移除 * @param position
*/
public void remove(int position) {
if (mDatas != null && mDatas.size() > position) {
mDatas.remove(position);
notifyDataSetChanged();
}
} @Override
public int getCount() {
return mDatas == null ? 0 : mDatas.size();
} @Override
public Object getItem(int position) {
return mDatas == null ? null : mDatas.get(position);
} @Override
public long getItemId(int position) {
return position;
} @Override
public View getView(int position, View convertView, ViewGroup parent) {
return createViewFromResource(position, convertView, parent);
} protected View createViewFromResource(int position, View convertView,
ViewGroup parent) {
// TODO Auto-generated method stub
return null;
} }

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

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

    Android UI--自定义ListView(实现下拉刷新+加载更多) 关于实现ListView下拉刷新和加载更多的实现,我想网上一搜就一堆.不过我就没发现比较实用的,要不就是实现起来太复杂,要不就 ...

  2. 分页插件思想:pc加载更多功能和移动端下拉刷新加载数据

    感觉一个人玩lol也没意思了,玩会手机,看到这个下拉刷新功能就写了这个demo! 这个demo写的比较随意,咱不能当做插件使用,基本思想是没问题的,要用就自己封装吧! 直接上代码分析下吧! 布局: & ...

  3. ListView 刷新加载控件

    1.MaterialRefreshLayout刷新加载: 导入依赖: compile 'com.cjj.materialrefeshlayout:library:1.3.0' 布局 <com.c ...

  4. jQuery Pjax – 页面无刷新加载,优化用户体验

    pjax 是 HTML5 pushState 以及 Ajax 两项技术的简称,综合这两个技术可以实现在不刷新页面的情况下载入 HTML 到当前网页,带给你超快速的浏览器体验,而且有固定链接.标题以及后 ...

  5. 界面动态加载时报NullPointException

    今天在做环境监测的模拟软件时,登陆页面报NullPointException 一般像我们初始化Button时,是Button btn=(Button)findViewById(R.id.button1 ...

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

    移动端tab滑动和上下拉刷新加载 查看demo(请在移动端模式下查看) 查看代码 开发该插件的初衷是,在做一个项目时发现现在实现移动端tab滑动的插件大多基于swiper,swiper的功能太强大而我 ...

  7. android 在自定义的listview(有刷新加载项)列表中,数据过少时不能铺满整个屏幕时,header和footer同时显示问题

    android  在自定义的listview(有刷新加载项)列表中,数据过少时,当刷新时,加载项也会显示,这是很头疼的一个问题,查阅了一些资料,总结了一个比较不错的方法: 原来代码: @Overrid ...

  8. js中对arry数组的各种操作小结 瀑布流AJAX无刷新加载数据列表--当页面滚动到Id时再继续加载数据 web前端url传递值 js加密解密 HTML中让表单input等文本框为只读不可编辑的方法 js监听用户的键盘敲击事件,兼容各大主流浏览器 HTML特殊字符

    js中对arry数组的各种操作小结   最近工作比较轻松,于是就花时间从头到尾的对js进行了详细的学习和复习,在看书的过程中,发现自己平时在做项目的过程中有很多地方想得不过全面,写的不够合理,所以说啊 ...

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

    想要更详细了解pjax,需要查看官网 或者看本站文章:jQuery.pjax.js:使用AJAX和pushState无刷新加载网页(官网教程中文翻译) 效果看本站,音乐无刷新播放,代码高亮和复制js加 ...

随机推荐

  1. unity, 两个动画同时播

    法一,animationLayer. 处于不同animationLayer中的状态可以同时运行,即其中的动画可以同时播放. 所以通常一个角色至少需要用两个animationLayer,一个layer用 ...

  2. ui-router详解(二)ngRoute工具区别

    我们了解 angular.js 是一种富客户端单页面应用,所以要在一个页面呈现不同的视图,路由起到了至关重要的作用. angular.js 为我们封装好了一个路由工具 ngRoute ,它是一种靠ur ...

  3. TRIZ系列-创新原理-17-转变到新维度原理

    转变到新维度原理的表述例如以下:1)把物体的动作.布局从一维变成二维.二维变成三维,以此类推     假设物体在本维度上的运动或者定位非常困难.就能够过渡到更高维度上,一般路线为:直线运动--> ...

  4. Decoration7:注册登录设计

    首先顶一个小目标:从前台写入用户数据后,登录的时候输入用户名和密码,能够查询数据库成功,同时记录session数据 1.Login界面,为了只关注主线任务,我直接套用一个bootstrap模板admi ...

  5. 3、Cocos2dx 3.0游戏开发找小三之搭建开发环境

    尊重开发人员的劳动成果.转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/27107295 搭建开发环境 使用 Cocos2d- ...

  6. PHP 生成唯一的激活码

    <? php /** * 生成永远唯一的激活码 * @return string */ function create_guid($namespace = null) { static $gui ...

  7. 为女票写的计算工作时间的SQL(二)

    将非工作时间.非工作日.节假日去掉,计算工作时间,如下: 一.实现 -- 节假日表 CREATE TABLE Holiday ( id ) NOT NULL, DATE ), flag ) , PRI ...

  8. m4--宏处理器

    m4 是 POSIX 标准中的一部分,所有版本的 UNIX 下都可用.虽然这种语言可以单独使用,但大多数人需要 m4 仅仅是因为 GNU autoconf 中的 “configure” 脚本依赖它.宏 ...

  9. Linux上的free命令简介

    每次使用free时都比较迷惑,对于上面的内容一直都不是很清楚,今天仔细查了以下,和大家一起分享以下: 先看一下free的运行结果: free打印出的内存信息主要分为两种,一种是安装的内存,一种是用磁盘 ...

  10. selenium运行火狐报错FirefoxDriver : Unable to connect to host 127.0.0.1 on port 7055

    摘要: 这是个常见的启动firefoxdriver的问题,具体的错误日志如下,其实原因很简单,就是你的Selenium版本和firefox 不兼容了. Firefox 版本太高了, 请及时查看你安装的 ...