使用OnScrollListener 来监听数据的改变

来源:互联网 发布:淘宝网酒类 编辑:程序博客网 时间:2024/05/21 15:03

上一节我们谈到如何对listview进行简单的适配,这一节我们将对listview中的下拉事件进行监听。
首先在原来simplelisttest项目进行更改,使他继承OnScrollListener这个接口,接着在oncreate中我们来设置监听,代码如下:

@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        listView=(ListView)findViewById(R.id.list_view);        initSimpleData();//初始化data        /*         * 创建适配器         */        simple=new SimpleAdapter(this, simpleList,R.layout.item,new String[]{"fruit_image","fruit_name"}, new int[]{R.id.fruit_image,R.id.fruit_name});        /*将适配器导入到listView中*/        listView.setAdapter(simple);        listView.setOnScrollListener(this);//设置监听    }

接着我们来重写setOnScrollListeneronScrollStateChanged(AbsListView view, int scrollState)方法,代码如下:

@Override    public void onScrollStateChanged(AbsListView view, int scrollState) {        // TODO Auto-generated method stub        switch (scrollState) {        case SCROLL_STATE_FLING://用户用力滑动到底部,手指离开了屏幕,但由于惯性,listview继续滑动的状态            Log.i("info", "1");            break;        case SCROLL_STATE_IDLE://视图已经停止滑动            Log.i("info", "2");            break;        case SCROLL_STATE_TOUCH_SCROLL://手指没离开屏幕,视图正在滑动            Log.i("info", "3");            Map<String,Object> map=new HashMap<String,Object>();            map.put("fruit_image", R.drawable.apple_pic);            map.put("fruit_name", "bababa");            simpleList.add(map);            simple.notifyDataSetChanged();//此处为通知ui线程重新刷新数据,若没有这条代码,程序没刷新或者会报错            break;        default:            break;        }    }

好了,重新运行该程序,是否发现已经有数据添加进来了?得瑟吧

0 0