上一节我们谈到如何对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);//设置监听
}
接着我们来重写setOnScrollListener
的onScrollStateChanged(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;
}
}
好了,重新运行该程序,是否发现已经有数据添加进来了?得瑟吧