1

我想通过单击按钮对数据进行排序。

我在这个类的帮助下解析一个 XML 并将它的值存储在一个列表中

  public class MyTripRespone {
    private List<MyTripCorporateBookingApprovals> coroprateBookingDetails = null;

    public List<MyTripCorporateBookingApprovals> getCoroprateBookingDetails() {
        return coroprateBookingDetails;
    }

    public void setCoroprateBookingDetails(
            List<MyTripCorporateBookingApprovals> coroprateBookingDetails) {
        this.coroprateBookingDetails = coroprateBookingDetails;
    }

}

在 Approved Class 中,我有 3 个值,即 date.id、name。

 public class MyTripCorporateBookingApprovals {

    private String insertTime ="";
    private String txid ="";
    private String journeyDate = "";
    private String passengerFirstName = "";


    public String getInsertTime() {
        return insertTime;
    }
    public void setInsertTime(String insertTime) {
        this.insertTime = insertTime;
    }
    public String getTxid() {
        return txid;
    }
    public void setTxid(String txid) {
        this.txid = txid;
    }

    public String getJourneyDate() {
        return journeyDate;
    }
    public void setJourneyDate(String journeyDate) {
        this.journeyDate = journeyDate;
    }
    public String getReturnDate() {
        return returnDate;
    }
    public void setReturnDate(String returnDate) {
        this.returnDate = returnDate;
    }
    public String getPassengerTitle() {
        return passengerTitle;
    }
    public void setPassengerTitle(String passengerTitle) {
        this.passengerTitle = passengerTitle;
    }
    public String getPassengerFirstName() {
        return passengerFirstName;
    }
    public void setPassengerFirstName(String passengerFirstName) {
        this.passengerFirstName = passengerFirstName;
    }




}

同样对于 name 和 id ,我将这些值放在我在循环中动态膨胀的布局中。所以我想当用户点击 sortByDate 时。这些值按日期以降序排列。表示最晚的日期,然后以此类推。我们应该怎么做?请帮忙 。

kalyan建议之后

public class MyTripComparator implements Comparator<MyTripCorporateBookingApprovals>{

    @Override
    public int compare(MyTripCorporateBookingApprovals lhs,
            MyTripCorporateBookingApprovals rhs) {
        return lhs.getJourneyDate().compareTo(rhs.getJourneyDate());
    }



}

public void sortByDate(View v) {
    Collections.sort(//what i have to here, new MyTripComparator());

    }
4

1 回答 1

0

尝试这个

MyTripCorporateBookingApprovals 类中

public class MyTripCorporateBookingApprovals implements
        Comparator<MyTripCorporateBookingApprovals>,
        Comparable<MyTripCorporateBookingApprovals> {

        }

  @Override
    public int compare(MyTripCorporateBookingApprovals lhs,
            MyTripCorporateBookingApprovals rhs) {
        try {
            return new SimpleDateFormat("yyyy-MM-dd").parse(lhs.getJourneyDate())
                    .compareTo(
                            new SimpleDateFormat("yyyy-MM-dd").parse(rhs
                                    .getJourneyDate()));
        } catch (ParseException e) {
            e.printStackTrace();
            return -1;
        }
    }

@Override
    public int compareTo(MyTripCorporateBookingApprovals another) {
        try {
            return new SimpleDateFormat("yyyy-MM-dd")
                    .parse(this.getJourneyDate()).compareTo(
                            new SimpleDateFormat("yyyy-MM-dd").parse(another
                                    .getJourneyDate()));
        } catch (ParseException e) {
            e.printStackTrace();
            return -1;
        }
    }

在你必须使用它的主类中

Collections.sort(tripParseData.getCoroprateBookingDetails());
于 2013-10-09T09:19:16.277 回答