【问题标题】:Not able to sort my custom Adapter : Android无法对我的自定义适配器进行排序:Android
【发布时间】:2016-08-27 14:01:27
【问题描述】:

我有一个活动,其中我将 setAdapter 设置为 gridview 。 数据加载得很好。 我有一个菜单,有两个选项 1. 按价格排序和 2. 按类别排序

这是我的自定义适配器中的功能

public void sortlistbyPrice(){
    Collections.sort(flightObjLists, new Comparator<FlightEntity>() {
        @Override
        public int compare(FlightEntity lhs, FlightEntity rhs) {
            return lhs.getPrice()==rhs.getPrice()?1:0;
        }
    });
    notifyDataSetChanged();

}

每当我想以排序方式显示项目时,我都会从 Activity 调用此函数。

但不幸的是它没有发生,有人可以在这里帮助我吗??

【问题讨论】:

    标签: android sorting collections


    【解决方案1】:

    你能帮我们测试一下吗?

    public void sortlistbyPrice(){
        Collections.sort(flightObjLists, new Comparator<FlightEntity>() {
            @Override
            public int compare(FlightEntity lhs, FlightEntity rhs) {
                return lhs.getPrice() < rhs.getPrice() ? -1 : lhs.getPrice() == rhs.getPrice()? 1 : 0;
            }
        });
        notifyDataSetChanged();
    
    }
    

    【讨论】:

    • 成功了,你能告诉我我做错了什么吗?如果 getPrice 返回我一个 boolean 会是什么逻辑,在这种情况下会是什么逻辑,因为我不能使用
    • 当然,@Kapil Bhandari :)。您必须检查三种情况,价格是更低、等于还是更高。在您的代码中,您只验证了它是否相等。
    • 如果 getPrice 返回一个布尔值会是什么逻辑,在这种情况下的逻辑是什么,因为我不能在布尔值上使用
    • 在这种情况下,您将无法按更高或更低排序,因为布尔(原始)只有两种可能的比较结果:等于或不同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-07
    • 2012-02-13
    • 1970-01-01
    • 1970-01-01
    • 2023-02-16
    相关资源
    最近更新 更多