listview排序list里面排序
本文目录一览:
- 1、安卓中怎么实现listview 条目拖动排序
- 2、如何用listview实现对数值进行排序
- 3、listview排序问题.请问如何按第二列进行排序
- 4、listview如何排序
- 5、listview的排序功能是怎么实现的
安卓中怎么实现listview 条目拖动排序
SlideAndDragListView,可排序、可滑动item显示”菜单”的ListView。
SlideAndDragListView(SDLV)继承于Android的ListView,SDLV可以拖动item到SDLV的任意位置,其中包括了拖动item往上滑和往下滑;SDLV可以向右滑动item,像Android的QQ那样(QQ是向左滑),然后显现出来"菜单”之类的按钮。
如何用listview实现对数值进行排序
当我们用ListView显示数据时,有一种很人性化的设计便是单击ListView某一列,该列则以升序或降序排列。
自己定义一个类继承自IComparer接口
class ListViewSort:IComparer
{
private int col;
private bool descK;
public ListViewSort()
{
col = 0;
}
public ListViewSort(int column, object Desc)
{
descK = (bool)Desc;
col = column; //当前列,0,1,2...,参数由ListView控件的ColumnClick事件传递
}
public int Compare(object x, object y)
{
int tempInt = String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text);
if (descK) return -tempInt;
else return tempInt;
}
}
在ListView的ColumnClick事件中调用
代码如下
private void listView1_ColumnClick(object sender, ColumnClickEventArgs e)
{
if (this.listView1.Columns[e.Column].Tag == null)
this.listView1.Columns[e.Column].Tag = true;
bool flag = (bool)this.listView1.Columns[e.Column].Tag;
if (flag)
this.listView1.Columns[e.Column].Tag = false;
else
this.listView1.Columns[e.Column].Tag = true;
this.listView1.ListViewItemSorter = new ListViewSort(e.Column, this.listView1.Columns[e.Column].Tag);
this.listView1.Sort();//对列表进行自定义排序
}
listview排序问题.请问如何按第二列进行排序
那你应该对你的数据根据你要处理的变量进行一个比较排序, 如果是ArrayList可以通过collectiONs类的sort方法来进行排序,如果想自定义排序方式则可以类通过实现Comparator接口并重写compare方法调用sort方法时将ArrayList对象与实现Commparator
listview如何排序
function ListViewCompare(lParam1, lParam2, lParamSort: Integer): Integer stdcall;begin //lParam1是第一个Item,lParam2是第二个Item, //内部用的是快速排序,体系会给你两个Item让你比较,procedure TForm1.ListView1ColumnClick(Sender:TObject); //比较的规矩由你决定,我这里是简单的比较字符串。 Result := Comparetext(TListItem(lParam1).Text, TListItem(lParam2).Text);end;begin Listview1.CustomSort(ListViewCompare, 0); //应当是CustomSort。
listview的排序功能是怎么实现的
在VB.NET中,您可以通过创建一个类来实现System.Collections.IComparer接口,实现ListView控件的排序功能。具体实现是:创建该类的实例,赋予给ListView1控件对象的ListViewItemSorter属性,然后在ListView的ColumnClick事件句柄(ListView1_ColumnClick)中添加代码实现按点击列排序。
下面提供一段示例代码功能参考,请根据您的系统的实际情况进行相应的修改:
Private Sub ListView1_ColumnClick(ByVal sender As Object, ByVal e As System.Windows.Forms.ColumnClickEventArgs) Handles ListView1.ColumnClick
ListView1.Sorting = SortOrder.Ascending
Dim Sorter = New ListViewSorter(e.Column)
ListView1.ListViewItemSorter = Sorter
End Sub
Public Class ListViewSorter
Implements System.Collections.IComparer
Public SortIndex As Integer
Public Sub New(ByVal SortIndex As Integer)
Me.SortIndex = SortIndex
End Sub
//这里只考虑按数值排序
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.Compare
Dim x1, y1 As ListViewItem
Dim intx, inty As Integer
x1 = x
y1 = y
intx = ParseListItemString(x1.SubItems(SortIndex).ToString())
inty = ParseListItemString(y1.SubItems(SortIndex).ToString())
If (intx inty) Then
Return -1
ElseIf (intx = inty) Then
Return 0
End If
Return 1
End Function
Private Function ParseListItemString(ByVal x As String) As Integer
Dim counter, i As Integer
counter = 0
For i = x.Length - 1 To 0 Step -1
If (x.Chars(i) = "{") Then
Exit For
End If
counter = counter + 1
Next i
Return CInt((x.Substring(x.Length - counter, counter - 1)))
End Function
End Class
listview排序的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于list里面排序、listview排序的信息别忘了在本站进行查找喔。
相关文章
发表评论
评论列表
- 这篇文章还没有收到评论,赶紧来抢沙发吧~