2013-08-01 4 views
2

J'essaie d'afficher une date dans l'ordre décroissant dans listview dans android ... J'ai écrit un programme ... Il montre correctement, mais quand la première date du mois à venir, la date du dernier mois n'affiche pas seulement une date montre ... Quelle est la raison? Comment améliorer mon code? S'il vous plaît me guider ..date affichage dans listview dans android

mon code est ici ...

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 


     } 
} 

Répondre

0

Je ne pense pas que vous allez sur la date itération droite - vous êtes juste itérer sur la valeur en millisecondes.

Considérez ceci:

/* 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)); 
    // ... 
}