2016-08-30 1 views
0

Je travaille avec l'adaptateur ListView extensible pour la première fois. J'ai un problème et ne pas obtenir le moindre indice que je comment faire it.Here est une vue de mon élément enfant enter image description hereComment obtenir l'élément Position sur l'enfant dans expandelistview dans Android

maintenant Ce que je veux faire est quand je clique sur En attente ou Assign Button? il obtient l'id de texthowing ci-dessus Afin de réussir. il y a beaucoup d'éléments dans la liste et je ne peux pas utiliser l'écouteur onchildClick parce que je dois me concentrer sur ces boutons et le texte supérieur ne se charge que depuis webservice. J'ai essayé d'utiliser getChildView ou getChildId mais il me donne l'identifiant du dernier enfant et en cours de clic il ne met pas à jour l'ID enfant. Aidez-moi s'il vous plaît à faire ceci. J'utilise aussi l'écouteur onClick dans l'adaptateur.

+0

réfèrent ce lien [ get child position from expandableListView] (http://stackoverflow.com/questions/18887224/how-to-get-child-position-from-expandablelistview) – sajan

+0

Je ne veux pas utiliser Child listlistener. parce qu'il ne fonctionne pas pour les boutons – Junaid

+0

avez-vous essayé de définir la balise pour la vue dans l'adaptateur avec les données requises? comme l'id de l'article, l'id de l'enfant ou ce que vous voulez? aussi comment gérez-vous le sur le clic pour chaque enfant peut-être partager l'adaptateur avec nous –

Répondre

1

vous pouvez implémenter événement click dans la classe de l'adaptateur voir l'exemple ci-dessous ici J'utilise ListAdapter extends BaseExpandableListAdapter{

et son la méthode surchargée dans ListAdapter, vérifiez l'échantillon

@Override 
public View getChildView(final int groupPosition, final int childPosition, 
     boolean isLastChild, View convertView, ViewGroup parent) { 

    final HashMap mapBinidGrp = allItms.get(groupPosition); 
    final ArrayList<ArrayList<String>> itmArys = (ArrayList<ArrayList<String>>) mapBinidGrp.get(mKEY_BIN_ITEMS); 
    final ArrayList<String> childText = itmArys.get(childPosition); 

    if (convertView == null) { 
     LayoutInflater infalInflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     convertView = infalInflater.inflate(R.layout.list_row_layout, null); 
    } 
    TextView txtListChild6 = (TextView) convertView.findViewById(R.id.tv_one); 

    txtListChild6.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // todo 
     } 
    }); 

    return convertView; 
}