OnItemClickListener与OnScrollListener监听器
2015-11-06 22:29
411 查看
1、OnItemClickListene监听器
可以处理视图中单个条目的点击事件
2、OnScrollListener监听器
监听滚动上完变化,可以用于试图在滚动中的加载
正在滚动----->手指离开屏幕前,用力滑了一下------->停止滚动
如果选用加载增加项:
Map<String, Object> map = new HashMap<String, Object>();
map.put("text", "滚动添加 "+i++);
map.put("image", R.drawable.ic_launcher);
list.add(map);
listView.setAdapter(simple_adapter);
simple_adapter.notifyDataSetChanged();
可以处理视图中单个条目的点击事件
2、OnScrollListener监听器
监听滚动上完变化,可以用于试图在滚动中的加载
public class MainActivity extends Activity implements OnItemClickListener, OnScrollListener { private ListView listView; private SimpleAdapter simple_adapter; private List<Map<String, Object>> list; private int i=0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 匹配布局文件中的ListView控件 listView = (ListView) findViewById(R.id.listView); <span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>// 设置ListView的元素被选中时的事件处理监听器 listView.setOnItemClickListener(this); getData(); // 设置SimpleAdapter监听器 simple_adapter = new SimpleAdapter(MainActivity.this, list, R.layout.list_item, new String[] { "image", "text" }, new int[] { R.id.image, R.id.text }); listView.setAdapter(simple_adapter); listView.setOnScrollListener(this); }
<span style="white-space:pre"> </span>// 加载SimpleAdapter数据集 private List<Map<String, Object>> getData() { list = new ArrayList<Map<String, Object>>(); Map<String, Object> map = new HashMap<String, Object>(); map.put("text", "java"); map.put("image", R.drawable.ic_launcher); Map<String, Object> map2 = new HashMap<String, Object>(); map2.put("text", "C++"); map2.put("image", R.drawable.ic_launcher); Map<String, Object> map3 = new HashMap<String, Object>(); map3.put("text", "JavaScript"); map3.put("image", R.drawable.ic_launcher); Map<String, Object> map4 = new HashMap<String, Object>(); map4.put("text", "Php"); map4.put("image", R.drawable.ic_launcher); Map<String, Object> map5 = new HashMap<String, Object>(); map5.put("text", "Python2"); map5.put("image", R.drawable.ic_launcher); list.add(map); list.add(map2); list.add(map3); list.add(map4); list.add(map5); Log.i("Main", list.size() + ""); return list; }
<span style="white-space:pre"> </span>//事件处理监听器方法 <span style="white-space:pre"> </span>@Override <span style="white-space:pre"> </span>public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // 获取点击ListView item中的内容信息 String text = listView.getItemAtPosition(position) + ""; // 弹出Toast信息显示点击位置和内容 Toast.makeText(MainActivity.this, "position=" + position + " content=" + text, 0).show(); }
<span style="white-space:pre"> </span>//ListView滚动状态变化的监听器 <span style="white-space:pre"> </span>@Override public void onScrollStateChanged(AbsListView view, int scrollState) { // 手指离开屏幕前,用力滑了一下 if (scrollState == SCROLL_STATE_FLING) { Toast.makeText(MainActivity.this, "用力滑一下",0).show(); Map<String, Object> map = new HashMap<String, Object>(); map.put("text", "滚动添加 "+i++); map.put("image", R.drawable.ic_launcher); list.add(map); listView.setAdapter(simple_adapter); simple_adapter.notifyDataSetChanged(); } else // 停止滚动 if (scrollState == SCROLL_STATE_IDLE) { } else // 正在滚动 if (scrollState == SCROLL_STATE_TOUCH_SCROLL) { } }
@Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { } }调用顺序:
正在滚动----->手指离开屏幕前,用力滑了一下------->停止滚动
如果选用加载增加项:
Map<String, Object> map = new HashMap<String, Object>();
map.put("text", "滚动添加 "+i++);
map.put("image", R.drawable.ic_launcher);
list.add(map);
listView.setAdapter(simple_adapter);
simple_adapter.notifyDataSetChanged();
相关文章推荐
- 算法策略的总结
- 监督学习(机器学习)
- 树形dp题集之树的直径
- LightOJ - 1048 Conquering Keokradong(贪心)
- fastdfs环境搭建
- 14 Longest Common Prefix
- ScrollView 获取滑动方向
- CentOS 中安装和卸载 Emacs
- FMDB总结及其中的一些注意点
- 排序算法(二):希尔排序
- cocos2d-x设计模式发掘之一:单例模式
- Angular.JS + Require.JS + angular-async-loader 来实现异步加载 angular 模块
- 关于java初学者的心理
- Turn the corner
- 53. PHP 伪静态(2)
- C++的面向对象的Dijkstra写法
- Caffe cuDNN max-pooling with in-place dropout
- mysql向表中插入时间
- android AsyncTask介绍
- java基本数据类型