-
设置监听器查看全部
-
设置下拉列表样式查看全部
-
(1)SimpleAdapter的构造方法中参数较多,要对应好布局文件中的id; (2)监听器和适配器是通用于很多的Android控件上,不局限于ListView; (3)本课案例通过onScrollListener监听了用户手指滑动的动作; 实际上我们常见的列表下拉刷新就是依此扩展的; (4)熟练运用notifyDatasetchanged,它可以动态更新视图中所包含的数据查看全部
-
ListView的滚动事件: 1.onScrollStateChange(view,scrollState)... scrollState有多个状态值(int)//滚动状态 -->SCROLL_STATE_FLING : 用户在手指离开屏幕前,用力在屏幕上划了一下,视图会由于惯性往下滑。 -->SCROLL_STATE_IDLE : 视图已经停止滑动 -->SCROLL_STATE_TOUCH_SCROLL : 手指没有离开屏幕,视图在往下滑动。 2.下拉到底部,底部刷新操作: Map<String, Object> map = new HashMap<String, Object>(); map.put("image",R.mipmap.ic_launcher); map.put("text","我是拉到最下边没有之后刷新添加的"); dataList.add(map); simple_adapter.notifyDataSetChanged();//适配器对象调用notifyDataSetChange();方法,告诉UI界面更新告诉UI界面更新。 在屏幕下滑时,动态的加载入新的数据,也就是在Map中添加新的数据map.put(...),添加到SimpleAdapter初始化时用到的数据源dataList中dataList.add(map),同时适配器通知UI线程有数据更新查看全部
-
public Object getItemAtPosition(int position) { T adapter = getAdapter(); return (adapter == null position < 0) ? null : adapter.getItem(position); }查看全部
-
执行步骤2查看全部
-
监听器查看全部
-
Spinner下拉列表的执行步骤查看全部
-
(SimpleAdapter)数据适配器的实现过程: 1.新建适配器 simp_adapter=new SimpleAdapter<String>(context,data,resource,from,to); context:上下文(this) data:有特定泛型的集合数据源--一个由Map所组成的List集合 (新建自定义List<Map<String,Object>> dataList并通过方法返回在此处---详见笔记附录1) <每一个Map都会去对应列表中的一行 每一个Map中的键必须包含所有在from中所指定的键> resource:列表项的布局文件(自定义布局) from:记录Map中的键名(new String[]{布局文件的name}) to:绑定数据视图中的ID,与from成对应关系(new int[]{布局文件中ID}) 2.添加数据源到适配器(上一步已包含) 3.视图(ListView)加载适配器 listView.setAdapter(simp_adapter);查看全部
-
simp_adapter=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成对应方向。 创建Item布局xml文件。 ======================================== private List<Map<String,Object>>dataList; 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); 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","imooc"+i); dataList.add(map); } return dataList; }查看全部
-
private List<Map<String,Object>>dataList; //创建一个List的对象dataList。List可以理解为链表,dataList这个链表中的元素是Map类型的元素,而Map是由String到Object的映射(由外到内理解) dataList=new ArrayList<Map<String,Object>>(); //实例化为ArrayList型(动态数组),可增加元素数量,每个元素是一个Map simp_adapter=new SimpleAdapter(this,getData(),R.layout.item,new String[]{"pic","text"},new int[]{R.id.pic,R.id.text}); //设置参数,其中getData()函数返回的值类型是List<Map<String,Object>> listView.setAdapter(simp_adapter); //绑定适配器 private List<Map<String,Object>> getData() { for(int i=0;i<20;i++) { Map<String,Object>map=new HashMap<String,Object>(); //定义的对象map类型是String到Object的映射,代表着ListView的每一个item map.put("pic",R.drawable.ic_launcher); map.put("text","imooc"+i); //键pic对应的值为R.id.pic,使用资源是R.drawable.ic_launcher dataList.add(map); //将一个item的内容添加至dataList动态数组中 } return dataList; //最后返回这个动态数组(包含全部内容) }查看全部
-
SimpleAdapter适配器查看全部
-
感觉书上讲复杂了,因为每次适配器他都重写了一次,不过就是不知道不重写会不会存在安全问题!比如说Adapter为空的时候。查看全部
-
ArrayAdapter适配器其名曰数组适配器,用于纯文本 SimpleAdapter适配器其名曰(“名字有简单其实不简单适配器”)简单适配器,用于图文并茂查看全部
-
数据适配器相当于是一个存放数据的地方,ListView中显示的数据要从数据适配器中调用查看全部
举报
0/150
提交
取消