android listView 排序问题

大概的要求,就是 我点击姓名,就根据姓名排序。点击年龄就按照年龄排序。
本人才学android3天,有很多都不懂。 所以开个帖子问问各大神。

3个回答

android:ListView排序
ListView 排序问题
listview 排序问题
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

在点击事件里面对集合按照你的 需求排好序然后刷新listview即可

性别,姓名,性别,分别用三个不同的list存储,对list排序,然后在调用listview的Adater.notifyDataSetChanged()刷新数据;

姓名,性别,年龄设置三个点击事件,点击事件中实现集合的排序
如下:
排序的代码
/**
* 用于排序
* @author yj 20160123
*/
private class SortComparator implements Comparator {

    @Override
    public int compare(OrderInfoModel lhs, OrderInfoModel rhs) {
        try {
            if (lhs != null && rhs != null) {
                int l = Integer.valueOf(lhs.getOrderSubNo());
                int r = Integer.valueOf(rhs.getOrderSubNo());

                return l > r ? 1 : -1;
            }
        } catch (Exception e) {
            logger.error(ComFunc.getExceptionMessage(e));
        }
        return 0;
    }
}

点击事件中进行集合的排序,
Collections.sort(ordersRecList, new SortComparator());// 排序
最后刷新列表:
adapter.notifyDataSetChanged();
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Android ListView排序
Android ListView中带有时间数据的排序
android listview item 拖动排序
listview 拖动 item 排序,参照了DragSortListView:可拖动排序的listview DragSortListView:可拖动排序的listview
Android 可拖拽排序的ListView
Android 可拖拽排序的ListView
请问listview的排序问题!!!!!!!!!!????????????????????????????
请问listview的排序问题!!!!!!!!!!????????????????????????????rnrnrn listview的viewstyle属性设为vsReport,请问怎样可以点击一下某个column就根据这个column的的子项rnrn目进行升序或降序序排序rnrnvb6.0是这样做的,代码如下:rnrnprivate sub listview_columnclick(byval columnheader as columnheader)rnrn listview.sortorder=0 '设为升序rnrn listview.sortkey= columnheader.index -1 ' 设置点击的column为排序的依据rnrn listview.sorted=true '开始排序rnrnrn end sub rnrnrn请问在delphi中的代码应该怎样写 ???????????rnrn感激万分!!!
WPF ListView排序问题
rn根据网上的例子对WPF ListView 成功排序。rnrn也学会了对其项成功拖拽。rnrn但是,当我点击列头排序后,拖拽就不起作用了,可以拖动,但放置的时候不起作用了。rnrn求帮忙???
关于ListView排序的问题
我想实现单击表头,就自动按照表头排序的功能,就像98文件列表一样的功能,怎么做那?
listview 的列排序问题
我的listview的第一列只有图标(表示状态),如何实现对图标列的排序.
ListView排序的问题?
单击列,如何实现重新排序rn在这ListView1_ColumnClick事件中
ListView控件排序问题
winForm ListView控件rn我初始化时 其前面的小图片是齐全的rn但是我排序之后 某些图标就丢失了 rn请问是什么问题
listview的排序问题
如何对数字排序?rnrnlistview的排序好像是针对字符的,比如900排在1000后面。
ListView点击排序的问题
我创建了一个ListView列表控件,上面有3个标题,我现在想编程实现点击任意一个标题可是实现对应的排序方法,比如说:rnrn3个标题是 学号 年龄 班级 如何对他们添加点击标题对其下面的内容进行排序
关于LISTVIEW排序问题
点击COLUMNS使其LISTVIEW中数据排序。rn在LISTVIEW这个类中,有个OnCompare函数,是否是将比较函数写入其中,然后再在columnCLick 中调用OnCompare
ListView 排序问题?
本人在开发一个软件时,需要实现类似windows资源管理器的功能,参考了delphi Demo自带的Virtual ListView例子,可以实现,就是没有排序功能,在网上搜了半天,在大富翁论坛上找到如下文档:http://www.delphibbs.com/delphibbs/dispq.asp?lid=1606415rn说虚拟listview和排序是鱼翅和熊掌,本人也试了一下,无法排序,望高手赐教!
listview的排序问题!
listview的排序问题!点击listview的头,可以对listview进行排序该如何实现??
ListView排序问题,急!
通常偶使用CustomSort函数,和OnCompare事件进行排序rnrn但是由于显示的结果较多,偶使用virtualListView方法显示数据,结果排序功能不好用了。rnrn有没有解决方法,麻烦帮忙指点一下。
ListView排序问题
对ListView中的项进行排序,思路是处理GridViewColumnHeader的Clicke事件,事件处理代码如下:rnrn static void OnGridViewColumnHeaderClicked(object sender, RoutedEventArgs e)rn rn var listview = sender as ListView;rn var header = e.OriginalSource as GridViewColumnHeader;rnrn if (listview != null && header != null)rn rn var propName = header.Column.Header as string;rn if (propName != null)rn rn UpdateSortDescription(CollectionViewSource.GetDefaultView(listview.ItemsSource), propName);rn rn rn rnrn static void UpdateSortDescription(ICollectionView view, string propName)rn rn ListSortDirection direction = ListSortDirection.Ascending;rnrn if (view.SortDescriptions.Count > 0 && view.SortDescriptions[0].PropertyName == propName)rn rn if (view.SortDescriptions[0].Direction == ListSortDirection.Ascending)rn rn direction = ListSortDirection.Descending;rn rn rnrn //排序代码rn view.SortDescriptions.Clear();rn view.SortDescriptions.Add(new SortDescription(propName, direction));rn view.Refresh();rn rn现在的问题是:rn1.虽然每次点击列头时排序代码都执行了,但只有第一次点击时有效果,后面再点都没有反应(排序的顺序是对的)rn2.第一次排序的结果不正确,如下图,是点击ID列后的结果,不清楚这个顺序是怎么出来的,[img=https://img-bbs.csdn.net/upload/201409/10/1410334986_867974.jpg][/img]rn怎么破?
关于android的listView排序问题...
写一个播放器,显示播放列表按照首字母排序,字母排在汉字前面。rnListView的适配器里面有这样一个方法,所以自己构造了一个类SongComparator继承自Comparatorrn[code=java] mSortAdapter.sort(new SongComparator());[/code]rnrn[code=java]package com.huwei.sweetmusicplayer.comparator;rnrnimport java.util.Comparator;rnrnimport com.huwei.sweetmusicplayer.models.Song;rnimport com.huwei.sweetmusicplayer.util.CharacterParser;rnrn rnpublic class SongComparator implements Comparator rnrn @Overridern public int compare(Song song1, Song song2) rn // TODO Auto-generated method stubrn // boolean isLetter1;rn // boolean isLetter2;rn // 得到歌曲名rnrn String title1 ;rn String title2 ;rn int isLetter1_m ;rn int isLetter2_m ;rn boolean isLetter1 ;rn boolean isLetter2 ;rnrn rn title1 = song1.getName();rn title2 = song2.getName();rnrn if (title1.equals("啊啊啊啊") || title2.equals("啊啊啊啊")) rn System.out.println(); //断点位置rn rnrn isLetter1_m = CharacterParser.firstIsLetter(title1);rn isLetter2_m = CharacterParser.firstIsLetter(title2);rnrn isLetter1 = (isLetter1_m == 0) ? false:true;rn isLetter2 = (isLetter2_m == 0) ? false:true;rn rnrn rnrn // if(isLetter1_m!=0)rn // isLetter1=true;rn // else rn // isLetter1=false;rn // rn //rn // if(isLetter2_m!=0)rn // isLetter2=true;rn // else rn // isLetter2=false;rn // rnrn // isLetter1=true;rn // isLetter2=false;rn if (isLetter1 && isLetter2) rn // 第一个是小写,第二个是大写rn if (isLetter1_m < isLetter2_m) rn return -1;rn // 第一个是大写,第一个是小写rn else if (isLetter1_m > isLetter2_m) rn return 1;rn // 大小写情况相同rn else rn return CharacterParser.getFirstLetter(title1).charAt(0)rn - CharacterParser.getFirstLetter(title2).charAt(0);rn rn else if (isLetter1) rn return -1;rn else if (isLetter2) rn return 1;rn else rn return CharacterParser.getFirstLetter(title1).charAt(0)rn - CharacterParser.getFirstLetter(title2).charAt(0);rn rn rnrnrn[/code]rn现在的问题是调试时发现在判断else if (isLetter1)时, 不进入下一个判断else if (isLetter2),而直接跳到了最后一个else,有时看到isLetter1,isLetter2时空的,有时不是的。我把断点设置在System.out.println();为了保证有一个是汉字。rnrnrn如果有需要我可以把整个工程发上来。
c# listview排序问题
winfrom中点击listview的表头进行排序时,怎么样能连带把listview的数据来源对应的list也排序了rn
listview 的列排序问题.
我的listview的第一列只有图标(表示状态),如何实现对图标列的排序.
ListView的排序问题
ListView在Detail形式的时候,如何才能使其按不同的列排序!rnrn记得以前用VB时,有SortKey 属性,但是现在没有了!rnrn如何实现??
关于listview的排序问题
我窗体上有个listview,把listview属性设置成控制面板那样的图标排列.还有三个radiobox,分别对应“升序”、“降序”和“不排序”。但是排序操作只在第一次选中某个radiobox的时候才执行。我哪里错了?请大家指点一下。rn这三个radiobox对应的程序如下:rn Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChangedrn ListView1.Sorting = SortOrder.Ascendingrn End Subrnrn Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChangedrn ListView1.Sorting = SortOrder.Descendingrn End Subrn Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChangedrn ListView1.Sorting = SortOrder.Nonern End Sub
ListView控件的排序问题
我的ListView控件中第一列ID全部是数字,我想让listView按数值大小排序rnrnlvMy.Sorted=TruernlvMy.SortKey=0 rnlvMy.SortOrder = lvwAscendingrnrn用上面的代码得到的排序结果是按字符来的,如:rnrn1rn11rn12rn2rn23rn25rn32rn35rn4rn5rn6rn7rn8rnrn怎样才能让listView控件按照数值大小排序呢?rn
ListView排序问题!
使用了帮助中的排序代码,但是存在两个问题:rn1:排序列的header上没有排序标志,就像资源管理器中排序列的header上都有三角形标记,表示升序和降序。rn2:我的ListView中的数据是动态更新的,每次更新时要清空原来的数据,然后添加最新的数据,此时对新数据不会进行排序。能不能添加数据时就按照原来的排序要求进行排序?
WinForms的ListView排序问题
请问:rn在对ListView进行排序之后rn我想使以后插入的数据不按照该顺序排列rn即要排序之后取消排序的作用该怎么办呢....rn比如rn序号 数据rn1 a1rn2 a2rn3 a3rn4 a4rn则我在最顶端插入一个数据 rn序号 数据rn 5 a5rn结果ListView把它放到最底端rn该怎么纠正啊???rn谢谢rn
ListView排序问题?
怎么样可以实现,单击相应的标题栏,实现排序!!
listview排序的问题
private void listView1_ColumnClick(object sender, ColumnClickEventArgs e)rn rn ColumnSort columnsort = new ColumnSort(e.Column);rn columnsort.bAscending = (listView1.Sorting == SortOrder.Ascending);rn if (columnsort.bAscending)rn rn listView1.Sorting = SortOrder.Descending;rn rn elsern rn listView1.Sorting = SortOrder.Ascending;rn rn listView1.ListViewItemSorter = columnsort; rn rn public class ColumnSort : IComparerrn rn private int columnNum = 0;rn public bool bAscending = true;rn public ColumnSort(int column_to_sort)rn rn columnNum = column_to_sort;rn rnrn public int Compare(object a, object b)rn rn System.Windows.Forms.ListViewItemrn listItemA = (System.Windows.Forms.ListViewItem)a;rn System.Windows.Forms.ListViewItemrn listItemB = (System.Windows.Forms.ListViewItem)b;rn if (bAscending)rn rn return String.Compare(listItemA.SubItems[columnNum].ToString(), listItemB.SubItems[columnNum].ToString());rn rn elsern rn return -1 * String.Compare(listItemA.SubItems[columnNum].ToString(), listItemB.SubItems[columnNum].ToString());rn rn rn rnrn这段代码是百度搜到的关于listview排序的,但是我不太懂这段代码,而且发现在程序运行中经常出现bug,敬请高手指教!
ListView排序的问题
对ListView使用了排序功能,但是现在有一个问题。rn在一次性对ListView添加数据的时候,每加一个,都会进行一次排序,当数据很多的时候,添加就会变得很慢,当没有排序的时候,数据是可以一下子就添加进去的。rn有没有什么办法,让系统在添加数据的时候不进行排序,在添加完后才执行排序。
listview排序问题
如何让ListView可以单击表头进行排序? 属性里面有的设置吗?还是要写代码?怎么写呢?
关于listview排序的问题
[code=C#] #region 自定义变量rn int currentCol = -1;rn bool sort;rn #endregionrnrn private void listView1_ColumnClick(object sender, ColumnClickEventArgs e)rn rn #region 字符串加上小三角,TrimEnd的用法测试rn string Asc = ((char)0x25bc).ToString().PadLeft(4, ' ');rn string Des = ((char)0x25b2).ToString().PadLeft(4, ' ');rn #endregionrnrnrn if (sort == false)rn rn sort = true;rn string oldStr = this.listView1.Columns[e.Column].Text.TrimEnd((char)0x25bc, (char)0x25b2, ' ');rn this.listView1.Columns[e.Column].Text = oldStr + Des;rn rn else if (sort == true)rn rn sort = false;rn string oldStr = this.listView1.Columns[e.Column].Text.TrimEnd((char)0x25bc, (char)0x25b2, ' ');rn this.listView1.Columns[e.Column].Text = oldStr + Asc;rn rnrn listView1.ListViewItemSorter = new ListViewItemComparer(e.Column, sort);rn this.listView1.Sort();rn int rowCount = this.listView1.Items.Count;rn if (currentCol != -1)rn rn for (int i = 0; i < rowCount; i++)rn rn this.listView1.Items[i].UseItemStyleForSubItems = false;rn this.listView1.Items[i].SubItems[currentCol].BackColor = Color.White;rnrn if (e.Column != currentCol)rn this.listView1.Columns[currentCol].Text = this.listView1.Columns[currentCol].Text.TrimEnd((char)0x25bc, (char)0x25b2, ' ');rn rn rnrn for (int i = 0; i < rowCount; i++)rn rn this.listView1.Items[i].UseItemStyleForSubItems = false;rn this.listView1.Items[i].SubItems[e.Column].BackColor = Color.WhiteSmoke;rn currentCol = e.Column;rn rn rnrnrnrnrnrnrnrn private void listView2_ColumnClick(object sender, ColumnClickEventArgs e)rn rn #region 字符串加上小三角,TrimEnd的用法测试rn string Asc = ((char)0x25bc).ToString().PadLeft(4, ' ');rn string Des = ((char)0x25b2).ToString().PadLeft(4, ' ');rn #endregionrnrnrn if (sort == false)rn rn sort = true;rn string oldStr = this.listView2.Columns[e.Column].Text.TrimEnd((char)0x25bc, (char)0x25b2, ' ');rn this.listView2.Columns[e.Column].Text = oldStr + Des;rn rn else if (sort == true)rn rn sort = false;rn string oldStr = this.listView2.Columns[e.Column].Text.TrimEnd((char)0x25bc, (char)0x25b2, ' ');rn this.listView2.Columns[e.Column].Text = oldStr + Asc;rn rnrn listView2.ListViewItemSorter = new ListViewItemComparer(e.Column, sort);rn this.listView2.Sort();rn int rowCount = this.listView2.Items.Count;rn if (currentCol != -1)rn rn for (int i = 0; i < rowCount; i++)rn rn this.listView2.Items[i].UseItemStyleForSubItems = false;rn this.listView2.Items[i].SubItems[currentCol].BackColor = Color.White;rnrn if (e.Column != currentCol)rn this.listView2.Columns[currentCol].Text = this.listView2.Columns[currentCol].Text.TrimEnd((char)0x25bc, (char)0x25b2, ' ');rn rn rnrn for (int i = 0; i < rowCount; i++)rn rn this.listView2.Items[i].UseItemStyleForSubItems = false;rn this.listView2.Items[i].SubItems[e.Column].BackColor = Color.WhiteSmoke;rn currentCol = e.Column;rn rn rnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrnrn public class ListViewItemComparer : IComparerrn rn public bool sort_b;rn public SortOrder order = SortOrder.Ascending;rnrn private int col;rnrn public ListViewItemComparer()rn rn col = 0;rn rnrn public ListViewItemComparer(int column, bool sort)rn rn col = column;rn sort_b = sort;rn rnrn public int Compare(object x, object y)rn rn if (sort_b)rn rn return String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text);rn rn elsern rn return String.Compare(((ListViewItem)y).SubItems[col].Text, ((ListViewItem)x).SubItems[col].Text);rn rn rn rnrnrn[/code]rnrn不知道为什么在我这里不起作用!会是哪里问题?
[WPF] listView排序的问题
wpf listView点击标题排序,在前台有一个[color=#FF0000]GridViewColumnHeader.Click=[/color][color=#0000FF]"GridViewColumnHeader_Click"[/color]事件,后台具体实现如下:rn if (e.OriginalSource is GridViewColumnHeader)rn rn //Get clicked columnrn GridViewColumn clickedColumn = (e.OriginalSource as GridViewColumnHeader).Column;rn if (clickedColumn != null)rn rn //Get binding property of clicked columnrn [color=#FF0000]string bindingProperty = (clickedColumn.DisplayMemberBinding as Binding).Path.Path;[/color]rn SortDescriptionCollection sdc = HistoryList.Items.SortDescriptions;rn ListSortDirection sortDirection = ListSortDirection.Ascending;rn if (sdc.Count > 0)rn rn SortDescription sd = sdc[0];rn sortDirection = (ListSortDirection)((((int)sd.Direction) + 1) % 2);rn sdc.Clear();rn rn sdc.Add(new SortDescription(bindingProperty, sortDirection));rn rn rn主要就是(红色那行)获取前台绑定的属性名,前台绑定属性方式: 要使用DisplayMemberBinding这种方式绑定才能实现上面的代码。rn现在前台得我绑定方式变了,如下rn rn rn rn rn rn rn使用模板这种绑定,那么后台那句获取属性名的语句就报错(DisplayMemberBinding 绑定为空)rn求问,我现在应该怎么获取属性名比较方便?(我想过通过列标题名判断,比如列标题是 “结果”,那么属性名就是“CheckState”,这样可以实现,但是感觉还是复杂了)
listview的排序图标问题
例如windows资源管理器rnrn那个排序的箭头是怎么出现的??是画上去的,还是本来listview就有这个属性,画上去好像只能出现在文字的前面rnrn我已经实现了排序,但是没那个箭头,不知道怎么弄出来。
请教listview的排序问题
listview的默认排序是按字母升序或降序排列,当用鼠标拖动一个item(a)到另一个item(b)之后时,如何保存这种排序(b,a,c)?rnrn
listview 排序设置问题
请问设置了sorting属性后,为什么不能正常排序呢?rn
Listview 图标排序问题
Listview图标手工拖动排列后,怎样才能记住图标位置,下一次程序启动后,图标按退出前的位置排列
ListView 中的排序问题
我想让它自动排序,就是显示的时候已经排好序了,而不是按它的列,然后触发ListView1ColumnClick事件来排序!
相关热词 c# login 居中 c# 考试软件 c# 自然语言分析 c# 分段读取文件 c# 泛型反射 c#打断点 c# 时间转多少秒 c# 线程函数加参数 c# modbus 读取 c#查询集合表