2次元のArrayListにすべてのデータを格納すると、列の1つが「場所」になることがあります。次に、以下のコードを使用してソートし、アダプタに渡します。
ArrayList<ArrayList<String>> yourData = new ArrayList<ArrayList<String>>();
yourData = /* initialize your data */ ;
Collections.sort(yourData, new Comparator<ArrayList<String>>() {
@Override
public int compare(ArrayList<String> row1, ArrayList<String> row2) {
return row1.get(0).compareTo(row2.get(0)); // "at 0 index your place
}
});
UPDATE:
は、各レストランの列 "場所" の経度及びlattitude値を格納することができます。その後、ユーザーの現在地を取得すると、ユーザーとレストランの間の距離を計算する方法を起動することができます。方法は次のようになります。
float [] distResult = new float[1];
Location.distanceBetween(latA, lonA, latB, lonB, distResult);
float dist = distResult[0];
これらの計算値は別々の列に格納します。すべての計算が完了したら、ユーザーの現在地とレストランとの距離を含む列に基づいて項目を並べ替えるソート方法を呼び出すことができます。距離の計算の詳細については
あなたは、リストをソートする `Comparator`を使用する必要がthis
を参照してください。より良いヘルプのために、アダプタとバッキングデータセットに関する詳細情報を提供してください。 –