课堂笔记2016.8.3

来源:互联网 发布:陈涌海 知乎 编辑:程序博客网 时间:2024/04/28 00:18
————————————————————————————————————————————————————
ListView中内容的分块?


1、内容分块的应用场合?
1)数据量小且适合一次加载
2)数据已有序
例如
1)联系人列表
2)城市信息列表
3)品牌信息列表


2、ListView中内容分块的具体实现
1)为每个item添加一个textview显示分块名称
2)显示分块中的第一个item的分块名称,其他隐藏
a)获得当前位置的分块名称对应的ascii码值
int getSectionForPosition(int position);
b)获得此section在listview列表中的一个最小位置(position)
int getPositionForSection(int section)


————————————————————————————————————————————————————


ListView中内容的右侧导航?


1、ListView的应用场合?
需要快速定位ListView中相关块的内容


2、ListView右侧导航实现?
1)在右侧添加一个LisiView的实现
2)点击右侧ListView内容定位左侧主题内容分块




————————————————————————————————————————————————————


音乐播放列表(综合)


1、从SDCARD取数据(音乐文件信息)?
1)获得所有.mp3文件对象?
2)将所有文件对象信息封装到List<Music>
a)定义一个Music类,封装音乐信息


2、将SDCARD中取到的音乐信息以列表形式显示到页面上
1)ListView(负责以列表形式呈现数据)
2)MusicAdapter(负责组装数据,将数据构建成列表项)


3、优化MusicAdapter对象(提高显示效率)
1)重用convertView
2)记录convertView中子元素的值(使用viewholder),减少findViewById的执行次数


4、ListView相关item的高亮显示?(让点击的item以不同背景显示)
1)添加短按监听器(OnItemClickListener):刷新列表
a)保存点击的位置(设置到适配器中)
b)在适配器的getView方法中根据位置设置背景
c)刷新列表(notifyDataSetChanged)
2)设置ListView选择模式(单选模式):获得选中的位置
此项可选择性设置


5.ListView 中元素的排序?(按升序排序)
1)执行排序操作(借助Collections的sort方法)
2)刷新listview列表


6、ListView中内容的分块显示?
1)已经排好序
2)显示每个item分块名称(添加分块text,设置textview的值)
3)隐藏每个分块中非第一个item的其它分块名称。


7、ListView中内容的右侧导航?
1)主页面布局中添加一个ListView
2)主页面中初始化ListView
3)点击导航的listview时,定位左侧分块位置


8、ListView中主页内容滚动时,动态修改右侧导航文本颜色
1)主页内容listview添加滚动事件(OnScrollListener)
2)在滚动监听器相关方法中处理业务












作业:
1、总结
2、完成音乐列表分块显示及导航
3、预习ExpandableListView(listview分组)













0 0