【发布时间】:2018-04-11 12:28:33
【问题描述】:
我想根据“时间”对以下列表视图进行排序。有什么办法可以在下面的代码上做到这一点?因此,例如 19:15 出现在 20:30 以上等...
我会非常感谢任何形式的帮助!
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
List<String> listTime = new ArrayList<String>();
Collections.sort(listTime);
final List<String> idsList = new ArrayList<>();
ArrayAdapter adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, listTime);
final ListView Time = (ListView) findViewById(R.id.Listtime);
for (final DataSnapshot ds : dataSnapshot.getChildren()) {
String user = ds.child("UserName").getValue(String.class);
String arrival = ds.child("Arrival").getValue(String.class);
String departure = ds.child("Departure").getValue(String.class);
String time = ds.child("Time").getValue(String.class);
String TripID = ds.child("TripID").getValue(String.class);
idsList.add(TripID);
String Trips = TextUtils.join(" | ", new String[]{time, user, departure, arrival});
listTime.add(Trips);
Time.setAdapter(adapter);
Time.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent intent = new Intent(AvailableRides.this,RideSelected.class);
String entry = (String) adapterView.getItemAtPosition(i);
TextView textView4 = findViewById(R.id.textView30);
String user = textView4.getText().toString();
String TripID = idsList.get(i);
intent.putExtra(EXTRA_MESSAGE10,user);
intent.putExtra(EXTRA_MESSAGE8, entry);
intent.putExtra(EXTRA_MESSAGE9, TripID);
startActivity(intent);
}
});
}
}
【问题讨论】:
-
您必须以 Date 格式而不是 String 保存日期。然后 Collections.sort 将对日期进行排序。
-
这是否意味着我只需将“字符串时间”更改为“日期时间”?