데이터를 어떻게 관리하는지 잘 모르겠습니다. 각 항목이 Comparable
인터페이스를 구현하는 Time
개체에 있고 모든 데이터가 List<Time>
인 것으로 가정합니다. 또한 ListView
은 List<Time>
에서 빌드 한 ArrayAdapter
으로 백업되고 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);
}
으로 전화를 걸면 목록이 10:30 이후의 시간으로 만 제한됩니다. updateTimes(mAllTimes)
을 호출하면 필터되지 않은 전체 목록이 표시됩니다.
당신은 무엇을하려고하는지 더 자세하게 설명 할 수 있습니까 – ap400200
저는 시간으로 목록보기를 가지고 있고 현재 시간에 따라 다른 항목을 보여주고 싶습니다. –
listview에서 setPosition (int pos)를 호출하지 않는 이유는 어디에 pos가 현재 시간의 위치와 일치합니까? – slayton