2010-11-24 26 views
0

je peux utiliser SimpleCursorTreeAdapter pour créer ExpandableListView avec groupcursors et childcursors corrects. Pour mon programme, chaque enfant contient trois TextView s. Lorsque je développe le groupe et cliquez sur enfant, j'utilise une boîte de dialogue personnalisée pour afficher les trois valeurs dans la vue EditText.obtenir des valeurs correctes dans childcursor pour le groupe cliqué

Le programme est ok si j'ouvre seulement le groupe "UN" à la fois. Je peux obtenir des valeurs enfant correctes si on clique dessus. Mais si je développe plusieurs groupes en même temps. Il montre seulement les derniers enfants sous le dernier groupe.

Par exemple: le groupe A a 3 éléments, le groupe B a 5 objets, Groupe C a 2 éléments. J'ai d'abord cliqué sur les enfants du groupe A, pas de problème, puis les enfants du groupe B, pas de problème, mais si je reviens cliquer sur les enfants du groupe A, ça montre encore les enfants du groupe B. Je ne sais pas comment montrer enfants. Si j'utilise Toast pour afficher, tous les enfants sont corrects, si étranges. Que puis-je faire dans ces méthodes?

epView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() 
     { 
      @Override 
      public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long row) 
      { 
      return false; 
      } 
      }); 

     epView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() { 
     @Override 
     public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) 
     { 

     int tempid = childcursor.getInt(0); 
     String temp1 = childcursor.getString(1); 
      String temp2 = childcursor.getString(2); 
      String temp3 = childcursor.getString(3); 
      CustomDialog custom = new CustomDialog(ListCateActivity.this,catecursor,childcursor,temp1,temp2,temp3,tempid); 
      custom.setTitle("Record Information"); 
      custom.show(); 

      Toast.makeText(ListCateActivity.this, "Group:"+String.valueOf(groupPosition).toString()+" Child: "+String.valueOf(childPosition).toString()+temp1+" "+temp2+" "+temp3, Toast.LENGTH_SHORT).show(); 
      return true; 
     } 
     }); 

merci !!

+0

Je fais quelque chose de similaire ICI http://stackoverflow.com/questions/10611927/simplecursortreeadapter-and-cursorloader – toobsco42

Répondre

0

Enfin je sais ce qui est arrivé à mon code maintenant, mais c'est tellement étrange. Comme je définis childcursor dans la méthode getChildrenCursor. Il devrait être hérité comme je définis childcursor comme variable d'instance, donc il peut être partagé dans la classe. Quoi qu'il en soit, Java et Android sont intéressants. Mais lorsque vous êtes bloqué avec un résultat inattendu, vous devez déboguer pour savoir quel est le problème.