实现对ListView中的条目进行排序
1.对ListView中的条目进行排序我的思路就是在我们队ListView进行设置Adapter的时候就先对List中的数据进行排序,对List进行排序就可以通过 Collections.sort()方法进行List中的排序
- 具体代码MainActivity中的代码
public class MainActivity extends AppCompatActivity {private ListView view;private int currentX;private int currentY;List<Integer> list;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);
////初始化控件initView();//设置数据setData();//对list进行判空操作 不然程序会抛出空指针异常if(list.size() >0)//进行ListView数据排序最关键的一个方法Collections.sort(list);view.setAdapter(new Adapter(this, list));}private void initView() {view = (ListView) findViewById(R.id.View);}private void setData() {list= new ArrayList<>();list.add(1);list.add(3);list.add(6);list.add(4);list.add(5);}}
-布局文件和Adapter中的代码就不放出来了布局文件中就一个ListView而Adapter就是一个TextView都非常简单
1.通过上面的代码我们可以看到我们在给List集合中放的是一个有序数据,但是如果我们放的数据是无序的数据或者我们想自己定义自己的排序规则那么要该怎么办呢
2.其实在 Collections.sort()中除了可以传递一个List参数之外他还可以传递两个参数
一个是List另外一个就是Comparator对象 而Comparator对象就是让我们进行自定义排序规则的
3.简单介绍一下Comparator对象
Collections.sort(list, new Comparator<Object>() {@Overridepublic int compare(Object o1, Object o2) {//如果o1 > o2 返回1(正数) 如果o1 == o2返回0 如果o1 <o2返回 -1 负数return 0;}});
具体代码
public class MainActivity extends AppCompatActivity {private ListView view;private int currentX;private int currentY;List<String> list;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);
////初始化控件initView();//设置数据setData();//对list进行判空操作 不然程序会抛出空指针异常view.setAdapter(new Adapter(this, list));if (list.size() > 0)Collections.sort(list, new Comparator<String>() {@Overridepublic int compare(String o1, String o2) {//如果o1 > o2 返回1(正数) 如果o1 == o2返回0 如果o1 <o2返回 -1 负数if(o1.equals("张三")) {return 1;}return -1;}});}private void initView() {view = (ListView) findViewById(R.id.View);}private void setData() {list= new ArrayList<>();list.add("张三");list.add("李四");}}
注意这种排序方式是从小往大进行排序
最后贴出按照时间进行排序 个人感觉按照时间比较常见
public class MainActivity extends AppCompatActivity {private ListView view;private int currentX;private int currentY;List<String> list;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);
////初始化控件initView();//设置数据setData();//对list进行判空操作 不然程序会抛出空指针异常view.setAdapter(new Adapter(this, list));if (list.size() > 0)Collections.sort(list);}private void initView() {view = (ListView) findViewById(R.id.View);}private void setData() {list= new ArrayList<>();list.add("2017-03-01 12:31");list.add("2017-03-02 12:31");list.add("2017-03-02 12:30");list.add("2017-03-01 12:30");}}
实现对ListView中的条目进行排序相关推荐
- 如何用程序实现对IE中scripts的控制(禁止和允许)
如何用程序实现对IE中scripts的控制(禁止和允许) Delphi / Windows SDK/API http://www.delphi2007.net/DelphiAPI/html/delph ...
- 用WPF实现在ListView中的鼠标悬停Tooltip显示
原文:用WPF实现在ListView中的鼠标悬停Tooltip显示 一.具体需求描述 在WPF下实现,当鼠标悬停在ListView中的某一元素的时候能弹出一个ToolTip以显示需要的信息. 二.代码 ...
- 在MATLAB中采用M文件实现对Simulink中的S函数程序实现自动调参数
在做研究的时候我们经常需要对模型的参数就行相应的选择,然而有没有觉得每次更改一个参数都需要运行一次仿真程序觉得很无聊呀,运行完程序还要看效果怎么样,然后再根据效果来调整参数,再次运行程序,如此反复. ...
- 自定义函数实现对n个数进行选择法排序,主函数调用.
题目: 自定义函数实现对n个数进行选择法排序,主函数调用. 要求:共自定义3个函数,分别对数组进行输入,排序和输出. 代码实现如下: #include<bits/stdc++.h> usi ...
- 如何在python中对列表套列表进行排序_如何实现对Python中列表的排序?
对List进行排序,Python提供了两个方法 方法1.用List的内建函数list.sort进行排序 list.sort(func=None, key=None, reverse=False) Py ...
- combobox 怎么实现对listview的类别查询_通过 Django Pagination 实现简单分页
作者:HelloGitHub-追梦人物 文中涉及的示例代码,已同步更新到 HelloGitHub-Team 仓库 当博客上发布的文章越来越多时,通常需要进行分页显示,以免所有的文章都堆积在一个页面,影 ...
- combobox 怎么实现对listview的类别查询_Flutter实战之独立实现官网Demo单词收藏Demo
概述 这是一次独立尝试,即独立完成实现Flutter文档第一个项目的最终效果,实现目标即首页为一个可无限滚动的单词列表,点击单词右边的小心心即可收藏或者取消收藏,可以在右上角的列表页查看收藏的单词,自 ...
- byte数组添加数据_C#基于S7协议实现对PLC中DB块字节数据的获取及自定义textbox实现数据解析...
实现思路 C#通过sharp7.cs 读取DB块中的数据.(这里是字节数组). 然后对字节数据进行解析,并绑定在textbox控件中进行显示. 需求 1-基于Sharp7.cs二次编写的访问PLC类. ...
- SpringBoot中集成Redis实现对redis中数据的解析和存储
场景 SpringBoot中操作spring redis的工具类: SpringBoot中操作spring redis的工具类_霸道流氓气质的博客-CSDN博客 上面讲的操作redis的工具类,但是对 ...
最新文章
- 智能物联网(AIoT,2020年)(中)
- php 导航高亮,zblogphp导航高亮代码分享教程
- nyoj 16 矩形嵌套 (DAG上的DP)
- 玩转android studio,玩转AndroidStudioIDE
- 异常的产生与传递 java
- 四处建实验室的Facebook说,我们没想跟学术界抢人啊
- ubuntu无法激活输入法,Zendstudio无法激活中文输入法问题
- kali linux工具pyrit,在Kali Linux上安装cuda、pyrit-cuda以及optimus
- amd显卡测试帧数显示软件,NVIDIA发布帧数显示及显卡基准测试应用FrameView
- 【java学习】多线程之高并发编程
- 2018最新最全1803win10专业版,教育版,企业版和ltbs密钥分享
- http://hi.baidu.com/%BE%C5%CC%EC%C4%A7%CA%DE/blog/item/9b3263626a75ff49ebf8f808.html
- weak_auth 小宁写了一个登陆验证页面,随手就设了一个密码。
- 李一男复出,能否完成一次“永不言败”的创业?
- SEO关键词策略——新站如何抗衡老站…
- 1378:最短路径(shopth)
- kafka-生产者消息发送流程
- kepware rest服务器_KEPServerEX
- 彻底卸载并重装Anaconda环境与Python的方法
- ESXi处理主机错误无法进入维护模式