2011-09-25 4 views
0

문제가있는 데 약간의 도움이 필요합니다. 응용 프로그램에서 사용하고있는 목록보기의 특정 부분을 얻으려고합니다. 내 목록보기에있는 내용은 다음과 같습니다.안드로이드 필터 목록보기

public void onCreate(Bundle savedInstanceState){ 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.plovdiv); 
     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
     ListView schedule = (ListView) findViewById(R.id.pld_schedule); 
     String TIME = ""; 
     ArrayList <HashMap<String, Object>> items = new ArrayList<HashMap<String,Object>>(); 

     HashMap<String, Object> hm; hm = new HashMap<String, Object>(); 

     Calendar c = Calendar.getInstance(); 
     int hours = c.get(Calendar.HOUR); 
     int minutes = c.get(Calendar.MINUTE); 
     Log.i("Time","Hours : "+hours+" minutes : "+minutes); 

     hm = new HashMap<String, Object>(); 
     hm.put(TIME, "06:00"); 
     items.add(hm); 

     hm = new HashMap<String, Object>(); 
     hm.put(TIME, "06:30"); 
     items.add(hm); 

     hm = new HashMap<String, Object>(); 
     hm.put(TIME, "07:00"); 
     items.add(hm); 

     hm = new HashMap<String, Object>(); 
     hm.put(TIME, "07:30"); 
     items.add(hm); 

     hm = new HashMap<String, Object>(); 
     hm.put(TIME, "08:00"); 
     items.add(hm); 

     hm = new HashMap<String, Object>(); 
     hm.put(TIME, "09:15"); 
     items.add(hm); 

     hm = new HashMap<String, Object>(); 
     hm.put(TIME, "10:00"); 
     items.add(hm); 

     hm = new HashMap<String, Object>(); 
     hm.put(TIME, "10:45"); 
     items.add(hm); 

     hm = new HashMap<String, Object>(); 
     hm.put(TIME, "11:30"); 
     items.add(hm); 

     hm = new HashMap<String, Object>(); 
     hm.put(TIME, "12:15"); 
     items.add(hm); 

     hm = new HashMap<String, Object>(); 
     hm.put(TIME, "13:00"); 
     items.add(hm); 

     hm = new HashMap<String, Object>(); 
     hm.put(TIME, "13:45"); 
     items.add(hm); 

     hm = new HashMap<String, Object>(); 
     hm.put(TIME, "14:30"); 
     items.add(hm); 

     hm = new HashMap<String, Object>(); 
     hm.put(TIME, "15:15"); 
     items.add(hm); 

     hm = new HashMap<String, Object>(); 
     hm.put(TIME, "16:00"); 
     items.add(hm); 

     hm = new HashMap<String, Object>(); 
     hm.put(TIME, "16:30"); 
     items.add(hm); 

     hm = new HashMap<String, Object>(); 
     hm.put(TIME, "17:00"); 
     items.add(hm); 

     hm = new HashMap<String, Object>(); 
     hm.put(TIME, "17:30"); 
     items.add(hm); 

     hm = new HashMap<String, Object>(); 
     hm.put(TIME, "18:00"); 
     items.add(hm); 

     hm = new HashMap<String, Object>(); 
     hm.put(TIME, "18:40"); 
     items.add(hm); 

     hm = new HashMap<String, Object>(); 
     hm.put(TIME, "19:30"); 
     items.add(hm); 

     hm = new HashMap<String, Object>(); 
     hm.put(TIME, "20:00"); 
     items.add(hm); 

     hm = new HashMap<String, Object>(); 
     hm.put(TIME, "20:40"); 
     items.add(hm); 

     hm = new HashMap<String, Object>(); 
     hm.put(TIME, "21:40"); 
     items.add(hm); 

     hm = new HashMap<String, Object>(); 
     hm.put(TIME, "22:30"); 
     items.add(hm); 

     SimpleAdapter adapter = new SimpleAdapter( this, items, R.layout.main_listview, 
                new String[]{TIME}, new int[]{ R.id.text}); 


     schedule.setAdapter(adapter); 
     schedule.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 

목록보기에서 현재 시간보다 큰 항목을 표시하려고합니다.

예를 그것은 지금 10:30, 그래서 내 목록보기의 값으로 10:30 후있는 항목 만 보여주고 싶은 : 나는

String time= hours+" : "+minutes; 
adapter.getFilter().filter(time); 

으로 해봤 등 10:45, 11:30과를, 하지만 내가 원하는대로하지 않아.

그렇다면 어떻게해야할까요?

답변

0

필터링 프로세스는 일치하는 목록의 각 개체에 대해 toString 메서드를 호출합니다. 따라서 객체의 toString()은 시간 문자열을 반환해야합니다.

지금 할 수있는 것은 클래스에 필드를 래핑하고 시간 구성원을 반환 할 toString()을 재정의하는 것입니다.

+0

이 기능을 사용하셨습니까? – Ronnie

+0

: 제발 나도 같은 문제에 빠졌어. –

관련 문제