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. 架构(三层架构)、框架(MVC)、设计模式三者异同点

    前言: 本博客主要针对架构.框架和设计模式三者的区别.还有三层和MVC的区别进行讨论.对于这三者一点都不了解的.请点在维基和百度百科上补补课.这里就不发链接了 软件架构(software archit ...

  2. HDU 4280Island Transport(网络流之最大流)

    题目地址:pid=4280">http://acm.hdu.edu.cn/showproblem.php? pid=4280 这个题是一个纯最大流模板题..就是用来卡时间的.. 还好我 ...

  3. LDO和BUCK降压稳压器对比

    LDO和BUCK降压稳压器对比 在采用MCU/DSP/FPGA设计的控制系统中,低压输入级(一般在12V以下),输出5V/3.3V/1.8V/1.5V/1.2V的电路中,常用的电源芯片是BUCK(降压 ...

  4. js ~取非运算符的妙用,将-1转为0(或假值)

    典型的运用场景就是indexOf

  5. WiX and System Folders 系统目录 installshield 如何将文件安装到C盘根目录

    Property name Brief description of property AdminToolsFolder Full path to the directory containing a ...

  6. 修改mysql中的auto_increment

    在mysql数据库中,如何修改自增值auto_increment呢?请看下面的语句: 1.sql语句 ALTER TABLE table_name AUTO_INCREMENT=1 2截断表,trun ...

  7. MySql图解给表添加外键

    关于外键约束的几种方式,请移步鄙人的另外一个博客中的博文  http://blog.csdn.net/hadues/article/details/52558184

  8. 各种波形文件vcd,vpd,shm,fsdb生成的方法(zz)

    仿真是IC设计不可或缺的重要步骤,仿真后一般需要记录下波形文件,用于做详细分析和研究.说一下几种波形文件WLF(Wave Log File).VCD(Value Change Dump)文件,fsdb ...

  9. Handler实例

    Handler使用例1这个例子是最简单的介绍handler使用的,是将handler绑定到它所建立的线程中.本次实验完成的功能是:单击Start按钮,程序会开始启动线程,并且线程程序完成后延时1s会继 ...

  10. Python异常处理try...except...finally raise assert

    异常处理:try ...except  try代码块放置容易发生异常的语句:except代码块放置处理异常的语句try ...except...finally finally代码快是任何时候都会执行的 ...