Android进阶-分页与分批及XUtils的注解来代替findViewById

原创 2015年11月19日 20:29:12

Android进阶-分页与分批及XUtils的注解来代替findViewById

  • Point1 使用ListView完成分页与分批
    • 核心思想当然都是,获取数据,在ListView中展示
    • 涉及的数据库语句: SELECT * FROM INFOS LIMIT ? OFFSET ?
    • 但区别是:
      • 分页的数据是在改变的
      • 分批的数据是不断增加的

例如 List infos; infos中放有我们要展示的数据,
那么对于分页,我们可能会这样处理:

//响应用户改变页面的交互代码
    public void changePage(View view){
        /*处理页码,填充数据...*/
        changeData();
    }

    //当用户获取下一页数据, 这样更新infos中的数据, 这里infos是全局变量
    private void changeData() {
        infos = dao.findPart(curentPgeNumber, pageSize);
        handler.sendEmptyMessage(0);
    }
    //在Handler中,这样显示新的数据
    private Handler handler = new Handler(){
        public void handleMessage(android.os.Message msg) {
                lvPage.setAdapter(new MyPageAdapter());  
            }
        };
    };

但是对于分批,我们可能这样处理:

//监听ListView的滑动,以确定是否加载数据
    lvBull.setOnScrollListener(new OnScrollListener() {
            // 滚动状态发生变化调用的方法。
            // OnScrollListener.SCROLL_STATE_FLING 惯性滑动
            // OnScrollListener.SCROLL_STATE_TOUCH_SCROLL 触摸滑动
            // OnScrollListener.SCROLL_STATE_IDLE 静止
            @Override
            public void onScrollStateChanged(AbsListView view, int scrollState) {
                switch (scrollState) {
                case OnScrollListener.SCROLL_STATE_IDLE: // 静止状态
                    // 判断是否是最后一个条目。
                    int lastPosition = lv_callsms_safe.getLastVisiblePosition();
                    System.out.println("最后一个可见条目的位置:" + lastPosition);
                    if (lastPosition == infos.size() - 1) { //最后一个位置,是否为能展示的最后一条数据
                        /*.......*/
                        loadData();
                    }
                    break;
                }
            }

    private void loadData() {
        infos.addAll(dao.findPart2(startIndex, maxCount));//将新加载的数据添加到数据集合中
        handler.sendEmptyMessage(0);
    }

    private Handler handler = new Handler() {
        public void handleMessage(android.os.Message msg) {
            adapter.notifyDataSetChanged(); //通知adapter,展示数据已经改变
        }
    };
  • Point2 使用XUtils的注解方式来代替findViewById

    1. 在onCreate()方法中,开启这个操作
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            /*....*/
            ViewUtils.inject(this);
        }
2. 在需要findViewById的控件上,添加@ViewInject注解,例如
        @ViewInject(R.id.btnAddBlackNumber)
        private Button btnAddBlackNumber;


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android中通过注解代替findViewById方法

来源:http://www.2cto.com/kf/201405/302998.html 这篇文章主要讲解注解实现findViewById的功能,首先我们来熟悉一下在java中怎么定义一个注解和解...

android---------Android中通过注解代替findViewById方法

原文地址:http://www.2cto.com/kf/201405/302998.html 这篇文章主要讲解注解实现findViewById的功能,首先我们来熟悉一下在java中怎么定...

Android注解省去findviewbyid

  • 2015-07-07 16:08
  • 1.30MB
  • 下载

Android开发框架xUtils简介(附有不使用findViewById的方法)

xUtils简介 xUtils 包含了很多实用的android工具。 xUtils 支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响…...

Android中注解详解,通过注解代替findViewById方法

注解的概念是在jdk5.0中提出来的,在java.lang的包中已经定义了三个注解:Override,Deprecated,SuppressWarnings Override相信大家非常熟悉,就是表...
  • lovoo
  • lovoo
  • 2016-06-04 10:53
  • 206

android UI进阶之实现listview的分页加载

上篇博文和大家分享了下拉刷新,这是一个用户体验非常好的操作方式。新浪微薄就是使用这种方式的典型。 还有个问题,当用户从网络上读取微薄的时候,如果一下子全部加载用户未读的微薄这将耗费比较长的时间,...

android UI进阶之实现listview的分页加载 处理加载完毕

http://blog.csdn.net/notice520/article/details/7248094 上篇博文和大家分享了下拉刷新,这是一个用户体验非常好的操作方式。新浪微薄就是...

android UI进阶之实现listview的分页加载

分享了下拉刷新,这是一个用户体验非常好的操作方式。新浪微薄就是使用这种方式的典型。

android UI进阶之实现listview的分页加载

http://www.189works.com/article-42851-1.html 上篇博文和大家分享了下拉刷新,这是一个用户体验非常好的操作方式。新浪微薄就是使用这种方式的典型。 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)