我需要一點幫助,以獲得列表視圖的特定部分根據當前時間。我有一個列表視圖與時間字符串如:"09:30"
- "10:00"
- "10:45"
。我使用數字時鐘在一個活動中顯示當前時間,我想根據當前時間顯示該列表視圖的特定部分。例如:顯示ListView的具體部分Android
這是10:30
,我要顯示它比10:30
像大列表視圖中的項目:10:45
,10:55
等
任何建議,如何做到這一點?
我需要一點幫助,以獲得列表視圖的特定部分根據當前時間。我有一個列表視圖與時間字符串如:"09:30"
- "10:00"
- "10:45"
。我使用數字時鐘在一個活動中顯示當前時間,我想根據當前時間顯示該列表視圖的特定部分。例如:顯示ListView的具體部分Android
這是10:30
,我要顯示它比10:30
像大列表視圖中的項目:10:45
,10:55
等
任何建議,如何做到這一點?
我不確定你如何維護你的數據。假設每個項目都在一個實現了Comparable
接口的Time
對象中,並且您有List<Time>
包含所有數據。另外,假設ListView
由ArrayAdapter
填充,Time[]
由List<Time>
構建。 (在MVC術語中,List<Time>
將是您的模型中,ListView
將是視圖,您的Activity
類將是控制器。)
以下代碼可被用來填充ListView
與數據:
private void updateTimes(List<Time> list) {
Time[] times = new Time[list.size()];
list.toArray(times);
mListView = (ListView) findViewById(R.id.listview);
mListView.setAdapter(new ArrayAdapter<Time>(this, R.layout.listitem, times));
}
當您想過濾列表以僅在10:30(或任何其他時間)之後顯示時間時,可以這樣做(假設List<Time> mAllTimes
是主時間列表,並且Time
類的構造函數需要String
):
private void filterTime(String onOrAfter) {
Time time = new Time(onOrAfter);
List<Time> filtered = new ArrayList<Time>();
for (Time t : mAllTimes) {
if (t.compareTo(time) >= 0) {
filtered.add(t);
}
}
updateTimes(filtered);
}
調用filterTime("10:30")
會將列表限制在10:30或10:30之後的次數。調用updateTimes(mAllTimes)
將顯示完整的未過濾列表。
你能更詳細地闡述一下,你正在嘗試做什麼 – ap400200
我有listview與時間作爲項目,我想根據當前時間顯示不同的項目。 –
爲什麼不直接在列表視圖中調用setPosition(int pos),其中pos對應於當前時間的位置? – slayton