1

ボタンをクリックしてデータの並べ替えを行いたい。

このクラスを使用して、XML を解析し、その値を List に格納しています。

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

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

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

}

承認済みクラスには、date.id、name という 3 つの値があります。

 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をクリックしたときに欲しいです。値は、日付の降順で並べられます。最初に最新の日付を意味し、その後に続きます。どうすればこれを行うことができますか?助けてください 。

カリヤンの提案の後

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 に答える