2017-08-26 9 views
-1

Mon application extrait une liste de dates et de noms de ma base de données, puis affiche le nom dans une vue de carte et la date dans une autre juste au-dessus. J'ai alors décidé qu'il était logique qu'une seule date soit affichée pour plusieurs enregistrements partageant la même date.Afficher et masquer les vues de cartes

Actuellement le code fonctionne correctement lorsque j'utilise un curseur simple mais je souhaite m'éloigner du curseur et utiliser des getters simples pour l'information.

J'ai ajouté dans le code ci-dessous ce qui me cause actuellement des problèmes et j'ai également commenté dans la version originale que j'ai utilisée sur mon adaptateur de curseur qui fonctionne parfaitement.

Merci

if (position - 1 >= 0) { 

      String currentDate = alarmDetails.getAlarmDate(); 

      String previousDate = alarmDetails.getAlarmDate(); 


      // Cursor version 
      //String currentDate = cursor.getString(cursor.getColumnIndexOrThrow("complete_date")); 
      //cursor.moveToPosition(position - 1); 
      //String previousDate = cursor.getString(cursor.getColumnIndexOrThrow("complete_date")); 

      if (currentDate.equalsIgnoreCase(previousDate)) { 

       viewHolder.header.setVisibility(View.GONE); 
       viewHolder.cardView.setVisibility(View.GONE); 

      } else { 


       viewHolder.header.setVisibility(View.VISIBLE); 
       viewHolder.cardView.setVisibility(View.VISIBLE); 
       viewHolder.header.setText(currentDate); 

      } 


    } else { 


     viewHolder.header.setVisibility(View.VISIBLE); 
     viewHolder.cardView.setVisibility(View.VISIBLE); 
     viewHolder.header.setText(alarmDetails.getAlarmDate()); 

     Cursor Version 
     //viewholder.header.setText(cursor.getString(cursor.getColumnIndexOrThrow("complete_date"))); 


    } 

} 

Répondre

0

Dans votre version du curseur currentDate et previousDate sont différents parce que pour currentDate le curseur est à la position position et previousDate curseur est à la position position - 1.

Dans la version actuelle currentDate et previousDate sont toujours les mêmes et égal à alarmDetails.getAlarmDate(), je pense que cette méthode devrait prendre la position paramater alarmDetails.getAlarmDate(int position), puis:

String currentDate = alarmDetails.getAlarmDate(position); 

String previousDate = alarmDetails.getAlarmDate(position - 1); 

Hope this helps.

+0

Salut Merci pour votre réponse, malheureusement, cela n'a pas résolu le problème, mais je continue à chercher – Steven