gpt4 book ai didi

Android如何按列对 ListView 中的对象列表进行排序

转载 作者:搜寻专家 更新时间:2023-11-01 09:12:13 24 4
gpt4 key购买 nike

我在android ListView 中使用适配器绑定(bind)类对象列表, ListView 有3个列标题(3个标题按钮),每个标题都有点击事件,现在我想在我点击时按列排序 ListView 第一个标题列,数据相对于第一列排序,我点击第二个标题,数据相对于第二列排序。我该怎么做。

最佳答案

前方有大量伪代码,您已收到警告。

假设你有一个类 Foo

class Foo{

private int param1;
private float param2;
private String param3;
}

现在制作 3 个比较器,一个用于您要排序的每个成员。最好使它成为同一个类的静态成员。

class Foo
{
public static Comparator PARAM1_COMPARATOR = <defination>;
public static Comparator PARAM2_COMPARATOR = <defination>;
public static Comparator PARAM3_COMPARATOR = <defination>;
}

在您的 Activity 中,使用此函数 refreshList()(或类似的东西),当要更改排序顺序时调用该函数。

void refreshList()
{
List<Foo> list = //say this is your list

//Pro tip: User a switch case instead.

if(Sort_by_param1)
Collections.sort(list, Foo.PARAM1_COMPARATOR);
if(Sort_by_param2)
Collections.sort(list, Foo.PARAM2_COMPARATOR);
if(Sort_by_param3)
Collections.sort(list, Foo.PARAM3_COMPARATOR);

adapter.notifyDatasetChanged() or call setAdapter again with the new list.
}

关于Android如何按列对 ListView 中的对象列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7481525/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com