StickyListHeaders实现电话本列表效果
来源:互联网 发布:mac安装ant 编辑:程序博客网 时间:2024/05/24 02:38
StickyListHeaders实现电话本列表效果
效果展示
https://raw.githubusercontent.com/emilsjolander/StickyListHeaders/master/demo.gif
布局文件
与listview使用方式一样,可以在布局文件中直接进行使用
核心代码
oncreat方法
在oncreat方法中初始化控件,并为控件设置数据适配器
StickyListHeadersListView stickyList = (StickyListHeadersListView) findViewById(R.id.list);MyAdapter adapter = new MyAdapter(this);stickyList.setAdapter(adapter);
设置数据适配器
在设置数据适配器的时候,需要先继承BaseAdapter,然后实现StickyListHeadersAdapter接口,最后实现里面为实现的方法
public class MyAdapter extends BaseAdapter implements StickyListHeadersAdapter {private String[] countries;private LayoutInflater inflater;public MyAdapter(Context context) { inflater = LayoutInflater.from(context); countries = context.getResources().getStringArray(R.array.countries);}@Overridepublic int getCount() { return countries.length;}@Overridepublic Object getItem(int position) { return countries[position];}@Overridepublic long getItemId(int position) { return position;}@Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { holder = new ViewHolder(); convertView = inflater.inflate(R.layout.test_list_item_layout, parent, false); holder.text = (TextView) convertView.findViewById(R.id.text); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.text.setText(countries[position]); return convertView;}@Override public View getHeaderView(int position, View convertView, ViewGroup parent) { HeaderViewHolder holder; if (convertView == null) { holder = new HeaderViewHolder(); convertView = inflater.inflate(R.layout.header, parent, false); holder.text = (TextView) convertView.findViewById(R.id.text); convertView.setTag(holder); } else { holder = (HeaderViewHolder) convertView.getTag(); } //set header text as first char in name String headerText = + countries[position].subSequence(0, 1).charAt(0); holder.text.setText(headerText); return convertView;}@Overridepublic long getHeaderId(int position) { //return the first character of the country as ID because this is what headers are based upon return countries[position].subSequence(0, 1).charAt(0);}class HeaderViewHolder { TextView text;}class ViewHolder { TextView text;}}
阅读全文
0 0
- StickyListHeaders实现电话本列表效果
- 仿StickyListHeaders 实现listview的header滑动效果(类似QQ好友列表)
- StickyListHeaders
- 分组列表,tabs滑动固定框架-stickylistheaders
- 仿安卓4.0联系人滑动效果 StickyListHeaders
- 实现下拉列表效果
- 简单电话本实现
- 电话本再实现
- java实现简单电话本
- list实现电话本
- 电话本动态实现
- jquery实现品牌列表效果
- 利用StickyListHeaders来实现ListView的分组实现
- Android中利用StickyListHeaders实现listView的悬浮头
- StickyListHeaders怎么实现上拉加载更多,下拉刷新?急
- 电话本
- 电话本
- 电话本
- LeNet
- iOS开发之带你5分钟封装一个时间轴
- activiti定时流程
- 操作系统之内存管理科普
- MyBatis与Spring整合
- StickyListHeaders实现电话本列表效果
- DonMin-2017-5-27-day04
- 分针网—每日分享:Axios全攻略
- 一种基于Makefile的编译系统架构实现及自动化
- Spring中监听器的详解
- 如何低成本搭建高性能分布式搜索引擎?
- worldfinal2017-C(二分最大匹配)
- 剑指Offer-17
- 返回顶部