使用ListView显示信息列表,用监听器和适配器,操作
2014-08-18 16:14
323 查看
2014-08-18
数据适配器: 是连接数据源和视图界面的桥梁
1、数组适配器(ArrayAdapter):用于绑定格式单一的数据
数据源:可以是集合或数组
2、简单适配器(SimpleAdapter):用于绑定格式复杂的数据
数据源:只能是特定泛型的集合
监听器: 程序和用户(或系统)交互的桥梁
OnScrollListener: 检测滚动的变化,可以用于视图在滚动中加载数据
OnItemClickListener: 用于处理视图中单个条目的点击事件
适配器数据的刷新
notifyDataChanged
数组适配器(ArrayAdapter)
监听滚动事件
数据适配器: 是连接数据源和视图界面的桥梁
1、数组适配器(ArrayAdapter):用于绑定格式单一的数据
数据源:可以是集合或数组
2、简单适配器(SimpleAdapter):用于绑定格式复杂的数据
数据源:只能是特定泛型的集合
监听器: 程序和用户(或系统)交互的桥梁
OnScrollListener: 检测滚动的变化,可以用于视图在滚动中加载数据
OnItemClickListener: 用于处理视图中单个条目的点击事件
适配器数据的刷新
notifyDataChanged
数组适配器(ArrayAdapter)
public class MainActivity extends ActionBarActivity implements OnScrollListener,OnItemClickListener{ private ListView listView; private SimpleAdapter simp_adapter; private List<Map<String, Object>> dataList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.fragment_main); /** * new SimpleAdapter(context, data, resource, from, to) * @context:上下文 * @data: 数据源(List<? extends Map<String, ?>> data), * 一个Map所组成的List集合 * 每一个Map都会去对应ListView列表中的一行 * 每个Map(键-值对) 中的键必须包含在所有在from中所指定的键 * @resource: 列表项的布局文件ID * @from: Map中的键名 * @to: 绑定数据视图中的ID,与from成对应关系 */ listView = (ListView) findViewById(R.id.listView1); dataList = new ArrayList<Map<String, Object>>(); simp_adapter=new SimpleAdapter(this, getData(), R.layout.item ,new String[]{"pic","text"}, new int[]{R.id.pic,R.id.text}); listView.setAdapter(simp_adapter); //加载事件监听器 listView.setOnItemClickListener(this); listView.setOnScrollListener(this); } private List<Map<String, Object>> getData(){ for (int i = 0; i < 20; i++) { Map<String,Object> map = new HashMap<String,Object>(); map.put("pic",R.drawable.ic_launcher); map.put("text", "demo"+i); dataList.add(map); } return dataList; } //需求:点击项,返回位置,内容, 吐司, @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO 自动生成的方法存根 String text = listView.getItemAtPosition(position)+""; Toast.makeText(this, "position="+position+" text="+text, Toast.LENGTH_LONG).show(); } //手指在列表中滑动,滑动到底部,自动增加项目 @Override public void onScrollStateChanged(AbsListView view, int scrollState) { // TODO 自动生成的方法存根 switch(scrollState){ case SCROLL_STATE_FLING: Log.i("Main","用户手指用力滑了一下,之后离开屏幕"); Map<String, Object> map = new HashMap<String, Object>(); map.put("pic", R.drawable.ic_launcher); map.put("text", "增加项"); dataList.add(map); //控制UI线程刷新界面 simp_adapter.notifyDataSetChanged(); break; case SCROLL_STATE_IDLE: Log.i("Main", "视图停止滑动"); break; case SCROLL_STATE_TOUCH_SCROLL: Log.i("main", "手指未离开屏幕,视图正在滑动"); break; } } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { // TODO 自动生成的方法存根 } }
监听滚动事件
![](http://images.cnitblog.com/i/663564/201408/181734300492706.png)
相关文章推荐
- 使用ListView显示信息列表,用监听器和适配器,操作
- 使用ListView显示信息列表
- 使用ListView显示信息列表
- Android攻城狮的第二门课(第1季)第2章 使用ListView显示信息列表
- Android实用笔记——使用ListView显示信息列表
- 第2章 使用ListView显示信息列表
- Android——使用ListView显示信息列表
- Android:使用ListView显示信息列表
- Android学习笔记---19_采用ListView实现数据列表显示,以及各种适配器使用,和如何写自己的适配器
- ListView使用ArrayAdpater显示信息列表
- Android 使用ListView显示信息列表
- 使用ListView显示信息列表
- yii 1.1.*中数据提供者CActiveDataProvider和列表显示组件CListView的使用
- Android应用中使用ListView实现数据列表显示(传智播客视频笔记)
- android开发教程之使用listview显示qq联系人列表
- 目录文件操作实例[3]_使用文件预览显示文件信息
- 在vb中使用Iphlpapi.dll获取网络信息 第二章 第十二节 获得本机系统网络接口适配器的列表
- Android中使用ListView显示列表之SimpleAdapter的使用
- 详细讲解ExpandableListView显示和查询仿QQ分组列表用户信息
- 使用自定义适配器实现ListView中的每一个list的不同显示风格