博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ListView 实现分组
阅读量:5127 次
发布时间:2019-06-13

本文共 2051 字,大约阅读时间需要 6 分钟。

1:FragmentHack4.java

/** * Created by y on 15-1-2. */public class FragmentHack4 extends Fragment{    View view;    List
names; ListView lvNames; NameSectionAdapter adapter; TextView tvHeader; int topVisiblePos; @Override public void onAttach(Activity activity) { super.onAttach(activity); names = new ArrayList
(); //测试数据 String []t={"A","B","C","D","E","F"}; for(int i=0;i

2:NameSectionAdapter.java

/** * Created by y on 15-1-2. */public class NameSectionAdapter extends ArrayAdapter
{ private int resourceId; public NameSectionAdapter(Context context, int resourceId, List
objects){ super(context,resourceId,objects); this.resourceId = resourceId; } @Override public View getView(int position, View convertView, ViewGroup parent) { String name = getItem(position); ViewHolder holder; if(convertView==null){ convertView = LayoutInflater.from(getContext()).inflate(resourceId,null); holder = new ViewHolder(); holder.tvHeader = (TextView)convertView.findViewById(R.id.tvHeader); holder.tvName = (TextView)convertView.findViewById(R.id.tvName); convertView.setTag(holder); }else{ holder = (ViewHolder)convertView.getTag(); } holder.tvName.setText(name); //如果是第一项或者首字母发生了变化,则显示分组栏,否则隐藏 if(position==0 || getItem(position-1).charAt(0)!=name.charAt(0)){ holder.tvHeader.setVisibility(View.VISIBLE); holder.tvHeader.setText(name.substring(0,1)); }else{ holder.tvHeader.setVisibility(View.GONE); } return convertView; } static class ViewHolder{ public TextView tvHeader; public TextView tvName; }}

3:布局文件:

(1)fragment_hack4.xml

(2)list_header.xml

(3)list_name_item.xml

4:运行结果

 

转载于:https://www.cnblogs.com/yshyee/p/4199135.html

你可能感兴趣的文章
[转]: 视图和表的区别和联系
查看>>
图论例题1——NOIP2015信息传递
查看>>
CocoaPods的安装和使用那些事(Xcode 7.2,iOS 9.2,Swift)
查看>>
Android 官方新手指导教程
查看>>
幸运转盘v1.0 【附视频】我的Android原创处女作,请支持!
查看>>
UseIIS
查看>>
vi命令提示:Terminal too wide
查看>>
引用 移植Linux到s3c2410上
查看>>
MySQL5.7开多实例指导
查看>>
[51nod] 1199 Money out of Thin Air #线段树+DFS序
查看>>
Red and Black(poj-1979)
查看>>
分布式锁的思路以及实现分析
查看>>
腾讯元对象存储之文件删除
查看>>
jdk环境变量配置
查看>>
安装 Express
查看>>
包含列的索引:SQL Server索引的阶梯级别5
查看>>
myeclipse插件安装
查看>>
浙江省第十二届省赛 Beauty of Array(思维题)
查看>>
NOIP2013 提高组 Day1
查看>>
cocos2dx 3.x simpleAudioEngine 长音效被众多短音效打断问题
查看>>