0

BaseExpandableListAdapter kavramının karışıklığı var, aşağıdaki sorunu açıkladım.BaseExpandableListAdapter convertview getChildView'den eski görünümü döndürür()

Beklenti: Örneğin

İki grupları var, her grup altında

gibi çocuk olarak farklı bir düzen tutan
  • Grubu1 -ReceivedRequest:

    child1 - dan Layout1

    child2 - from Layout1

  • Grubu2 -ReceivedSent:

    child1 - Layout2

    den

    alt2 - Layout2

Sorun den:

zaman Grubu1 ilk tıklayıp Group2 çalışması mükemmel (örn. yani convertview (... etmelidir onun) doğru yolu şişirme böylece, ilgili grubun ilk kez

arayarak Ama ne zaman Grubu2 ilk tıklayın ve ardından Grubu1 onun hala eski Grubu2 görünümü döndürürken convertview null sorun olduğu) olmak boş ama onun dönen eski görünümü

Lütfen rota beni .. Ben tam Stackoverflow üzerinde here sormak ama henüz bir çözüm Aşağıda

var olduğu bulundu benim Kod diğerlerini yardımcı olacağını bu yüzden sadece kendi soruya cevap

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

     SingleRow singleRow = new SingleRow(); 
     RequestInfo Req_child = (RequestInfo) getChild(groupPosition,childPosition); 
     String type = Req_child.requestertype; 
     if(convertView==null) { 

      switch (type) 
      { 
       case RequestInfo.REQ_RECEIVED_ACCOUNT: 

        LayoutInflater infalInflater = (LayoutInflater) context 
          .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
        convertView = infalInflater.inflate(R.layout.row_reqlist_acctrcvd, null); 
        convertView.setTag(singleRow); 
        break; 

       case RequestInfo.REQ_SENTACCOUNT: 

        LayoutInflater infalInflater1 = (LayoutInflater) context 
          .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
        convertView = infalInflater1.inflate(R.layout.row_reqlist_acctsent, null); 
        convertView.setTag(singleRow); 
        break; 
        } 
     } 

     singleRow = (SingleRow) convertView.getTag(); 
     switch (type) 
     { 
      case RequestInfo.REQ_RECEIVED_ACCOUNT: 
       singleRow.tvUsername_req_rcd = (TextView) convertView.findViewById(R.id.rw_reqaccts_rcvd_username); 
       singleRow.tvNickName_req_rcd = (TextView) convertView.findViewById(R.id.rw_reqaccts_rcvd_nickname); 
       singleRow.im_gender_req_rcd = (ImageView) convertView.findViewById(R.id.rw_reqaccts_rcvd_profpic); 
       singleRow.btAcceptReq = (Button) convertView.findViewById(R.id.rw_reqaccts_rcvd_accpt); 
       singleRow.btRjctReq = (Button) convertView.findViewById(R.id.rw_reqaccts_rcvd_rjct); 

       singleRow.tvUsername_req_rcd.setText(Req_child.requesterUsername); 
       singleRow.tvNickName_req_rcd.setText(Req_child.requesterNickName); 
       singleRow.im_gender_req_rcd.setImageBitmap(Req_child.requestergender.equals("Male") ? rmale_pic : rfemale_pic); 
       Log.i("Expand", "your child username is " + Req_child.requesterUsername); 

      break; 

      case RequestInfo.REQ_SENTACCOUNT: 
       singleRow.tvUsername_req_sent = (TextView) convertView.findViewById(R.id.rw_reqaccts_sent_username); 
       singleRow.tvNickName_req_sent = (TextView) convertView.findViewById(R.id.rw_reqaccts_sent_nickname); 
       singleRow.im_gender_req_sent = (ImageView) convertView.findViewById(R.id.rw_reqaccts_sent_profpic); 
       singleRow.btReqSent = (Button) convertView.findViewById(R.id.rw_btn_sent_reqaccts); 

       singleRow.tvUsername_req_sent.setText(Req_child.requesterUsername); 
       singleRow.tvNickName_req_sent.setText(Req_child.requesterNickName); 
       singleRow.im_gender_req_sent.setImageBitmap(Req_child.requestergender.equals("Male") ? rmale_pic : rfemale_pic); 
       Log.i("Expand", "your child username is " + Req_child.requesterUsername); 

     } 
     return convertView; 
    } 

cevap

0

, ben yöntemi elle getChildTypeCount() ve getChildType geçersiz kılmak varsayalım (int groupPosition, int childPosition) örtmek farklı çocuk sahibi düzen, aşağıdaki güncellenmiş kodumu bulun.

@Override 
public int getChildTypeCount() { 
    return 2; 
} 

@Override 
public int getChildType(int groupPosition, int childPosition) { 
    return groupPosition; 
} 


@Override 
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { 
    SingleRow singleRow = null; 
    RequestInfo Req_child = childtems.get(groupPosition).get(childPosition); 
    String type = Req_child.requestertype; 
    if(convertView==null) { 
     switch (type) 
     { 
      case RequestInfo.REQ_RECEIVED_ACCOUNT: 
       singleRow = new SingleRow(); 
        convertView = inflater.inflate(R.layout.row_reqlist_acctrcvd, null); 
        singleRow.tvUsername_req_rcd = (TextView) convertView.findViewById(R.id.rw_reqaccts_rcvd_username); 
        singleRow.tvNickName_req_rcd = (TextView) convertView.findViewById(R.id.rw_reqaccts_rcvd_nickname); 
        singleRow.im_gender_req_rcd = (ImageView) convertView.findViewById(R.id.rw_reqaccts_rcvd_profpic); 
        singleRow.btAcceptReq = (Button) convertView.findViewById(R.id.rw_reqaccts_rcvd_accpt); 
        singleRow.btRjctReq = (Button) convertView.findViewById(R.id.rw_reqaccts_rcvd_rjct); 
        convertView.setTag(singleRow); 
       break; 

      case RequestInfo.REQ_SENTACCOUNT: 
       singleRow = new SingleRow(); 
        convertView = inflater.inflate(R.layout.row_reqlist_acctsent, null); 
        singleRow.tvUsername_req_sent = (TextView) convertView.findViewById(R.id.rw_reqaccts_sent_username); 
        singleRow.tvNickName_req_sent = (TextView) convertView.findViewById(R.id.rw_reqaccts_sent_nickname); 
        singleRow.im_gender_req_sent = (ImageView) convertView.findViewById(R.id.rw_reqaccts_sent_profpic); 
        singleRow.btReqSent = (Button) convertView.findViewById(R.id.rw_btn_sent_reqaccts); 
        convertView.setTag(singleRow); 
       break; 
       } 
    } 
    else 
    { 
     singleRow = (SingleRow) convertView.getTag(); 
    } 

    switch (type) 
    { 
     case RequestInfo.REQ_RECEIVED_ACCOUNT: 
      singleRow.tvUsername_req_rcd.setText(Req_child.requesterUsername); 
      singleRow.tvNickName_req_rcd.setText(Req_child.requesterNickName); 
      singleRow.im_gender_req_rcd.setImageBitmap(Req_child.requestergender.equals("Male") ? rmale_pic : rfemale_pic); 
     break; 

     case RequestInfo.REQ_SENTACCOUNT: 
      singleRow.tvUsername_req_sent.setText(Req_child.requesterUsername); 
      singleRow.tvNickName_req_sent.setText(Req_child.requesterNickName); 
      singleRow.im_gender_req_sent.setImageBitmap(Req_child.requestergender.equals("Male") ? rmale_pic : rfemale_pic); 
    } 
    return convertView; 
}