2013-08-01 3 views
2

안드로이드의 listview에서 내림차순으로 날짜를 표시하려고합니다 ... 프로그램을 작성했습니다 ... 올바르게 표시하고 있지만, 지난 달 날짜가 ​​표시되지 않고있는 날짜가 하나만 표시됩니다. 이유가 무엇입니까? 코드를 개선하려면 어떻게합니까?안드로이드의 listview에 날짜가 표시됩니다.

public void datesadd() 
{ 
    listview.setAdapter(new ListAdapter(this)); 

     cc1=Calendar.getInstance(); 
     int mon1=cc1.getTime().getDate(); 
     Date dd=new Date(); 
     SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 
     while(mon1>=count) 
     { pos=0; 
      line=new HashMap<String,String>(); 
      String cdat=String.valueOf(cc1.get(Calendar.DATE)); 
      @SuppressWarnings("deprecation") 

      String mons=String.valueOf(cc1.get(Calendar.MONTH));   
      String day1=String.valueOf(cc1.getTime().getDay());    

      @SuppressWarnings("deprecation") 
      String year1=String.valueOf(cc1.get(Calendar.YEAR));  
      try { 
       dd=format.parse(year1+"-"+mons+"-"+cdat); 
      } catch (ParseException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      line.put("yeari", year1); 
      line.put("mont",mons); 
      line.put("dayi",dd.toString().substring(0, 3)); 
      line.put("datei",cdat);    
      mon1--; 
      cc1.add(Calendar.DATE, -1); 
      Log.v("", "line"); 

      disp.add(line); 
     // here disp is ArrayList<Hashmap<String,String>> object, i was declared it on top of my main program 


     } 
} 

답변

0

난 당신이 날짜 반복에 대한 권리려고 생각하지 않는다 ...

내 코드는 여기에 .. 저를 인도하십시오 - 당신은 그냥 밀리 초에서 값을 반복하고 있습니다.

/* From your code I'm not sure what count is, but you get the idea, you need 
* a Date object here or you can just use a for() loop if you know the number 
*       | 
*       V            */ 
while (cc1.getTime().after(count)) { 
    cc1.add(Calendar.DAY_OF_YEAR /*or month, year, whatever*/, -1); 

    // and then continue with your own code 
    line = new HashMap<String,String>(); 
    String cdat = String.valueOf(cc1.get(Calendar.DATE)); 
    // ... 
} 
:

이 고려

관련 문제