1、继承ArrayAdapter

public class TimerDataAdapter extends ArrayAdapter<TimerDataListItem> {
    //数据ID
    int dataResourceID = 0;
    //内容
    private Context mContext;
    //数据列表
    private List<TimerDataListItem> mtimerDataList;

    private TextView area = null;
    private TextView dev = null;
    private TextView val = null;
    private TextView limit = null;
    private TextView updatetime = null;

    //构造函数
    public TimerDataAdapter(Context context, int dataResourceId,List<TimerDataListItem> timerDataList) {
        super(context, dataResourceId,timerDataList);
        this.dataResourceID = dataResourceId;
        this.mContext = context;
        this.mtimerDataList = timerDataList;
    }

    @Override
    public int getCount() {
        return mtimerDataList.size();
    }

    @Override
    public TimerDataListItem getItem(int position) {
        return mtimerDataList.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        TimerDataListItem item = getItem(position);

        if(item != null) {
            if (convertView == null) {
                convertView = LayoutInflater.from(mContext).inflate(
                        dataResourceID, null);
                area = (TextView) convertView.findViewById(R.id.array_area);
                dev = (TextView) convertView.findViewById(R.id.array_dev);
                val = (TextView) convertView.findViewById(R.id.array_data);
                limit = (TextView) convertView.findViewById(R.id.array_limit);
                updatetime = (TextView) convertView.findViewById(R.id.array_updatetime);
            }

            area.setText(item.getArea());
            dev.setText(item.getDev());
            val.setText(item.getVal());
            limit.setText(item.getlimit());
            updatetime.setText(item.getUpdatetime());

            int status = item.getStatus();
            if (status == 0) {
                val.setBackgroundColor(0xFF156BCC);//0代表正常
            } else if (status == 1) {
                val.setBackgroundColor(0xFFFE3044);//1代表不正常
            } else {
                val.setBackgroundColor(0xFFF2EC10);//2代表超时数值
            }
        }
        return convertView;
    }
}

2、Fragment中设置Adapter

mAdapter = new TimerDataAdapter(this.getActivity()
                ,R.layout.fragment_timerdata_list_item,mtimerDataList);
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        //实例化fragment布局。动态的有grid和list俩种
        View view = inflater.inflate(R.layout.fragment_timerdata_list, container, false);

        View headerView = inflater.inflate(R.layout.fragment_timerdata_list_header, null);
        mListView = (ListView) view.findViewById(android.R.id.list);
        mListView.addHeaderView(headerView);

        // Set the adapter
        mListView.setAdapter(mAdapter);

        mswipeLayout =(SwipeRefreshLayout)view.findViewById(R.id.id_swipe_ly);
        mswipeLayout.setOnRefreshListener(this);
        mswipeLayout.setColorSchemeResources(android.R.color.holo_blue_light, android.R.color.holo_blue_light,
                android.R.color.holo_blue_light, android.R.color.holo_blue_light);

        return view;
    }

3、使用swiperefreshlayout 下拉刷新

布局

    <android.support.v4.widget.SwipeRefreshLayout
        android:id="@+id/id_swipe_ly"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

    <ListView android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:drawSelectorOnTop="false"
        android:fastScrollEnabled="true"/>

    <!--<TextView android:id="@android:id/empty" -->
        <!--android:layout_width="match_parent"-->
        <!--android:layout_height="match_parent" -->
        <!--android:gravity="center" />-->
    </android.support.v4.widget.SwipeRefreshLayout>

刷新

@Override
    public void onRefresh()
    {
        mHandler.sendEmptyMessageDelayed(0, 2000);
    }

    private Handler mHandler = new Handler()
    {
        public void handleMessage(android.os.Message msg)
        {
            getTimerData();
            mAdapter.notifyDataSetChanged();
            mswipeLayout.setRefreshing(false);
        }
    };

4、空指针异常 java.lang.NullPointerException

Adapter中getView内声明控件变量有关,出现刷新Adapter错误

Android --ListView使用ArrayAdapter的更多相关文章

  1. Android -- ListView与ArrayAdapter、SimpleAdapter

    对于ArrayAdapter,里面虽然能添加图片,但只能是相同的图片. 废话不多说: 布局&&list的item布局                                   ...

  2. Android ListView ArrayAdapter 的简单使用

    前面写了3篇关于android的文章,其中的演示程序都写在了一个工程中,当时为了方便测试就在启动页MainActivity中放了3个按钮,点击不同的按钮进入不同的示例程序页面,MainActivity ...

  3. 42.Android之ListView中ArrayAdapter简单学习

    今天学习下Android中ListView关于ArrayAdapter数据绑定, 废话少说直接上代码. 改下布局文件: <?xml version="1.0" encodin ...

  4. Android新手入门2016(8)--ListView之ArrayAdapter

    本文来自肥宝传说之路,引用必须注明出处! ListView是Android中经常使用的控件. 什么是列表视图,让我们先看看图: watermark/2/text/aHR0cDovL2Jsb2cuY3N ...

  5. Android listview与adapter用法

    listview与adapter用法 博客分类: android   一个ListView通常有两个职责. (1)将数据填充到布局. (2)处理用户的选择点击等操作. 第一点很好理解,ListView ...

  6. 第28讲 UI组件之 ListView和ArrayAdapter

    第28讲 UI组件之 ListView和ArrayAdapter 1. Adapter 适配器 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带.在常见的 ...

  7. Android Listview切换动画,扩展到任意view切换之间动画实现

    添加布局如下: <?xml version="1.0" encoding="utf-8"?> <!-- Copyright (C) 2010 ...

  8. Android 演示 Android ListView 和 github XListView(3-3)

    本文内容 环境 项目结构 演示 1:简单 XListView 演示 2:XListView + Fragment 演示 3:XListView + ViewPager + Fragment 本文三个演 ...

  9. Android 演示 Android ListView 和 github XListView(1-3)

    本文内容 环境 项目结构 演示 1:ListView 演示 2:简单 XListView 演示 3:音乐列表 XListView 演示 4:另一个音乐列表 XListView 本文四个演示,循序渐进. ...

随机推荐

  1. 使用本函式处理后的字串会沿续到PHP程式而转入eval函数

    html码放在数据库里,通过php文件调用,经过一系列处理后,用eval函数 将希望的变量带入生成所需要的动态页.这样,我就没再看vbb源码,而转入eval函数了. 星空浪子的php中文手册是这样介绍 ...

  2. portable runtime

    APR The mission of the Apache Portable Runtime (APR) project is to create and maintain software libr ...

  3. 每天学点GDB 15

    本节重点描述两个gdb集成测试环境 有没有办法在一边调试的时候,一边显示对应的源码呢?有没有一种工具能够将gdb集成到ide中呢,本文就试图回答这些问题. emacs gdb 在linux的世界里,e ...

  4. Frenetic Python实验(一)

    Follow: Github-Frenetic 准备: 所有的实验,第一步都需要开启控制器,命令: $ frenetic http-controller --verbosity debug 每一个实验 ...

  5. BKDRhash实现

    参考了一些有关于哈希算法的博客,里面都有提到BKDR哈希算法,在博客:各种字符串Hash函数中有对各种hash算法进行测试,测试关于哈希冲突,以及散列的质量,得到的结果可以参考以上博文. BKDRha ...

  6. jQuery 判断表单中多个 input text 中至少有一个不为空

    html: 名称1:<input class="seasoning_name" type="text" name="seasoning_name ...

  7. 优秀而又实用的PHP工具集锦

    优秀而又实用的PHP工具集锦   浏览:1141 发布日期:2013/09/04 分类:技术分享 PHP是目前实用最为广泛的服务器端开源脚本语言之一,很多优秀的开源程序都是基于PHP构建的,比如大名鼎 ...

  8. JS实现HTML静态页传值的方法

    JS实现HTML静态页传值的方法 作者:前端开发-武方博 发布:2012-10-29 分类:javascript 阅读:8,735次     此处使用JS方式实现静态页之间值传递,其实很简单,废话不多 ...

  9. 设计和实现OLAP解决方案

    设计和实现OLAP解决方案   第一讲 简介首先,啥叫数据仓库? 数据仓库就是数据的仓库!用外文说叫Data Warehouse,简称DW. 是不是哐当倒下一片啊,要不咱换个专业点的说法? 数据仓库是 ...

  10. Ruby--String

    --全部转为小写:[STR].downcase --全部转为大写:[STR].upcase --仅仅首字母为大写:[STR].capitalize --每个单词首字母为大写:[STR].titleiz ...