码迷,mamicode.com
首页 > 其他好文 > 详细

201504进度

时间:2015-04-01 19:09:22      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:

2015/04/01         星期三

计划:

  1. 1.       改变List的存储结构(数据库或者其他),读取方式。
  2. 2.       添加编辑功能(增删改)。
  3. 3.       按钮/开关的状态信息保存。
  4. 全开全关按钮的边界。

完成:

  1. 之所以页面在上下滑动时开关的状态会自己改变,是因为在生成页面,显示开关状态时,没有按照各个开关在数据库中的位置来显示其状态,而只是在生成某一行是读取当前holder的值。
  2.  

问题原因:主要问题在于根据状态来改变按钮的显示,但因为listview的item具有复用机制,可能会出现按钮状态连锁改变、按钮状态紊乱等不定情况,解决办法是记住对应索引的按钮状态存入集合,在getview中读取,显示,触发事件的时候再更改集合,重新赋值。

protected void onListItemClick(ListView l, View v, int position, long id)
声明,我看文档了,文档说:
onListItemClick:当list里的一个item被点击的时候调用
l                  这个点击事件在哪个ListView发生的
v                 哪个View被点击了
position       这个View在ListView中的位置
id                这个被点击的View的ID

position 在listview是的位置,可以理解为数组的下标。id是子view的资源id,在整个应用中是唯一的。

position是用来被Cursor定位的,id是被SQLiteOpenHelper增删改查用的。

id是数据库相关的变量,Cursor查询数据库时有用

 

参考资料:

ListView 点击一个item另外几个Item响应

BaseAdapter——convertView回收机制与动态控件响应

在Activity中响应ListView内部按钮的点击事件

android用户界面之ListView教程实例汇总

为ListView每个Item上面的按钮添加事件

SlideExpandableListView-master

 

Android ListViewAdapter() 继承BaseAdapter实现一个列表功能:

在处理ListView的条目点击事件的时候,ListView的父类AdapterView会有一个方法getItemAtPosition 这个方法会调用Adapter中的getItem(int postion)方法

开启这个状态开关需要写在OnItemClickListener(), 再里面通过getAdapter获取BaseAdapter实例,然后通过其中的notifyDataSetInvalidated()刷新数据就好了。

201504进度

标签:

原文地址:http://www.cnblogs.com/fansen/p/4384303.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!