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. 应用服务器上部署自己的 blog 和 wiki 组件。

    协作性应用程序 这就是 Web 2.0 的全部,尽管该术语出现才几乎一年的时间,但现在好像只有烹饪杂志还没有加入到讨论 Web 2.0 未来出路的行列中.自从出现了里程碑式的文章 "What ...

  2. [转] How to generate multiple outputs from single T4 template (T4 输出多个文件)

    本文转自:http://www.olegsych.com/2008/03/how-to-generate-multiple-outputs-from-single-t4-template/ Updat ...

  3. 【转载】jQuery插件开发精品教程,让你的jQuery提升一个台阶

    要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其开发插件,从而建立起了一个生态系统.这好比大公司们争相做平台一样,得平台者得天下.苹果,微软,谷歌等巨头,都有各自的平台及生态圈 ...

  4. ci获取当前url链接的分组,控制器,方法

    public function role() { $ci= &get_instance();//ci控制器超级对象,就是把所有执行的方法打印出来 $directory = substr($ci ...

  5. Ubuntu 开启 Crontab 计划任务日志

    Ubuntu 下的 Crontab 日志功能不是自动开启的.开启日志功能的步骤是: ① 修改 rsyslog sudo vim /etc/rsyslog.d/-default.conf 找到: #cr ...

  6. MySQL 数据库设计 笔记与总结(1)需求分析

    数据库设计的步骤 ① 需求分析 ② 逻辑设计 使用 ER 图对数据库进行逻辑建模 ③ 物理设计 ④ 维护优化 a. 新的需求进行建表 b. 索引优化 c. 大表拆分 [需求分析] ① 了解系统中所要存 ...

  7. PHPStorm下XDebug配置

    PHPStorm下XDebug配置 分类: PHP2013-08-11 22:15 19697人阅读 评论(0) 收藏 举报   目录(?)[+]   1安装Xdebug 用yum安装可能会失败,用p ...

  8. S5PV210裸板驱动:启动

    以往2440和6410的启动方式,只要我们把裸板代码烧写到NAND FLASH的开始位置,当开发板上点启动时,处理器会自动从NAND FLASH上拷贝前面一段的代码到内部的RAM中执行.按照以前的方法 ...

  9. a bitwise operation 广告投放监控

    将随着时间不断增大的数字N个依次编号为1到N的N个球,颜色每次随机为红黑蓝,时间上先后逐个放入篮子中,计算离现在最近的24个球的红.黑.蓝颜色数 广告投放监控 a bitwise operation ...

  10. Nginx 常用全局变量 及Rewrite规则详解

    每次都很容易忘记Nginx的变量,下面列出来了一些常用 $remote_addr //获取客户端ip $binary_remote_addr //客户端ip(二进制) $remote_port //客 ...