Android StickyListHeaders实现电话本列表效果
发布时间 - 2026-01-11 01:24:49 点击率:次本文实例为大家分享了StickyListHeaders电话本列表效果的具体代码,供大家参考,具体内容如下

效果展示
布局文件
与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);
}
@Override
public int getCount() {
return countries.length;
}
@Override
public Object getItem(int position) {
return countries[position];
}
@Override
public 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;
}
@Override
public 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;
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# StickyListHeaders
# 电话本
# 列表效果
# Android实现联动下拉框 下拉列表spinner的实例代码
# android二级listview列表实现代码
# android 支持的语言列表(汇总)
# Android uses-permission权限列表中文注释版
# Android通过LIstView显示文件列表的两种方法介绍
# Android ExpandableListView展开列表控件使用实例
# Android实现获取应用程序相关信息列表的方法
# android开发教程之使用listview显示qq联系人列表
# Android用ListView显示SDCard文件列表的小例子
# Android列表实现(3)_自定义列表适配器思路及实现代码
# 并为
# 大家分享
# 具体内容
# 大家多多
# setAdapter
# adapter
# StickyListHeadersAdapter
# BaseAdapter
# MyAdapter
# findViewById
# stickyList
# list
# id
# public
# inflater
# LayoutInflater
# context
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
装修招标网站设计制作流程,装修招标流程?
千库网官网入口推荐 千库网设计创意平台入口
Laravel怎么导出Excel文件_Laravel Excel插件使用教程
今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】
Angular 表单中正确绑定输入值以确保提交与验证正常工作
Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
高防服务器:AI智能防御DDoS攻击与数据安全保障
EditPlus中的正则表达式 实战(4)
微信公众帐号开发教程之图文消息全攻略
活动邀请函制作网站有哪些,活动邀请函文案?
Laravel如何与Docker(Sail)协同开发?(环境搭建教程)
Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑
绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信
Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用
PHP正则匹配日期和时间(时间戳转换)的实例代码
如何在 React 中条件性地遍历数组并渲染元素
宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法
如何用JavaScript实现文本编辑器_光标和选区怎么处理
Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧
Laravel事件监听器怎么写_Laravel Event和Listener使用教程
Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
Android中AutoCompleteTextView自动提示
如何快速生成专业多端适配建站电话?
Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】
Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】
历史网站制作软件,华为如何找回被删除的网站?
php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】
Laravel如何升级到最新版本?(升级指南和步骤)
网站制作报价单模板图片,小松挖机官方网站报价?
Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
Laravel怎么使用Markdown渲染文档_Laravel将Markdown内容转HTML页面展示【实战】
jQuery validate插件功能与用法详解
Laravel如何实现模型的全局作用域?(Global Scope示例)
利用vue写todolist单页应用
Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程
如何制作一个表白网站视频,关于勇敢表白的小标题?
JS弹性运动实现方法分析
实例解析Array和String方法
原生JS获取元素集合的子元素宽度实例
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
如何自定义建站之星模板颜色并下载新样式?
如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环
html5的keygen标签为什么废弃_替代方案说明【解答】
高端建站如何打造兼具美学与转化的品牌官网?
html如何与html链接_实现多个HTML页面互相链接【互相】
魔方云NAT建站如何实现端口转发?
node.js报错:Cannot find module 'ejs'的解决办法
香港服务器选型指南:免备案配置与高效建站方案解析

