0

アプリケーションの値に応じて並べ替えたいのですListviewが、コーディング方法がわかりません。私が調査したところ、人々はコンパレーターとコレクションを使用して配列リストをソートしていることがわかりました。基本的に、承認または拒否などのステータスで並べ替えたいと思います。値は に保存されTAG_ACCEPT_REJECT、 に表示されR.id.applicantStatusます。

以下は私のコードです:

adapter = new SimpleAdapter(
                ApplicantJobStatusActivity.this,
                applicantsList,
                R.layout.list_applicant_status,
                new String[] { TAG_UID, TAG_NAME,
                               TAG_ACCEPT_REJECT,
                               TAG_ACCEPT_REJECT_DATETIME },
                new int[] { R.id.applicantUid,
                            R.id.applicantName,
                            R.id.applicantStatus,
                            R.id.accept_reject_datetime });
setListAdapter(adapter);

コンパレータとコレクションを使用して並べ替えコードを配置する方法と場所を知りたいですListView

4

2 に答える 2

3

applicantsListリストをアダプターに渡す前に、リストをソートする必要があります。Collections.sortその後、アプローチを使用できます。そんな感じ:

Collections.sort(applicantsList, new Comparator<T extends Map<String, ?>> {
  public int compare(T map1, T map2) {
    if (!map1.has(TAG_ACCEPT_REJECT)) return -1;
    if (!map2.has(TAG_ACCEPT_REJECT)) return 1;

    // Assumes the objects you store in the map are comparables
    return map1.get(TAG_ACCEPT_REJECT).compareTo(map2.get(TAG_ACCEPT_REJECT));
  }
});
于 2012-10-22T13:18:48.993 に答える
1

-を に割り当てるArrays.sort() 前に使用ArrayAdapterます。

-Collections.sort(Collection c)または、Comparableインターフェイスで使用できます。

-またはArrayList Adapter`Collections.sort(Collection c, Comparator cp)を使用します。Comparator Interface, with Colletions like before assigning it to the

/////////////////////////編集部分////////////////////// ///

以下のリンクを参照してください。これには、さまざまな手法を使用して配列、ArrayList などを並べ替えるすべての例が含まれています。

http://www.mkyong.com/java/java-object-sorting-example-comparable-and-comparator/

于 2012-10-22T13:25:03.410 に答える