У меня запутанная концепция BaseExpandableListAdapter, объясненная ниже.BaseExpandableListAdapter convertview возвращает старый вид из getChildView()
Expectation:
Например, у меня есть две группы, каждая группа имеет различное расположение, как ребенок, как ниже
Group1 -ReceivedRequest:
child1 - от Layout1
ребенок2 - от Layout1
Group2 -ReceivedSent:
child1 - от Layout2
child2 - от Layout2
Проблема:
Когда я нажимаю Group1 первый и затем Group2 его работа идеальна (т. convertview равно нулю при вызове в первый раз на соответствующей группе, так ее раздувания правильный путь),
Но когда я нажимаю Group2 первый, а затем Group1 его до сих пор возвращение старого Group2 вид ... (т.е. convertview должен быть пустым, но его возвращение старого вида)
Любезно маршрут мне, где это проблема .. я нашел точный спросить here на Stackoverflow но нет никакого решения еще
Ниже мой Код
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;
}