【发布时间】:2014-03-27 18:43:27
【问题描述】:
我尝试向Android: How to sort data for ListView? 学习,但我无法排序Flights 我在微调器中按选择排序(位置=1)我想对Flights 中的字符串进行排序
final ArrayList<HashMap<String, String>> ArrList = new ArrayList<HashMap<String, String>>();
Spinner sort1 = (Spinner) findViewById(R.id.sort1);
String[] sortName;
sortName = getResources().getStringArray(R.array.sort_enroute);
ArrayAdapter<String> ADT = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, sortName);
sort1.setAdapter(ADT);
final ListView list1 = (ListView) findViewById(R.id.list);
int arrLength = dataF.length;
for (int i = 0; i < arrLength; i++)
{
HashMap<String, String> map = new HashMap<String, String>();
map.put("Flights", dataF[i]);
map.put("Types", dataT[i]);
ArrList.add(map);
}
ListAdapter adapters = new SimpleAdapter(Result.this, ArrList,
R.layout.column_layout, new String[] { "Flights", "Types"},
new int[] { R.id.flightnum, R.id.DES });
list1.setAdapter(adapters);
sort1.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
if (arg2 == 1) {
Collections.sort(ArrList,
new Comparator<HashMap<String, String>>() {
@Override
public int compare(
HashMap<String, String> arg0,
HashMap<String, String> arg1) {
return arg0.get("Flights").compareTo(arg1.get("Flights"));
}
});
}
}
【问题讨论】:
-
能否格式化您的代码?在eclipse中点击控制(或命令)+shift+F。
-
尝试删除数组列表中的final,声明为public,然后重试
标签: java android sorting compare