Ich habe eine Liste von benutzerdefinierten Objekten und ich möchte ExpandableListView
mit Daten dieser Objekte bevölkern. Aber bei der benutzerdefinierten Adapter steckte es bei getGroupCount
Funktion und es stoppt ohne Fehler und nicht eine andere Funktion wie getChildrenCount
übergeben. Erste getGroupCount
funktioniert und nach getGroupCount
aber sonst nichts. Expandablelistview
wird nicht auf dem Bildschirm angezeigt. Es wird kein Fehler angezeigt und es wird kein explistview angezeigt. Ich kann das Problem nicht finden. Ich sehe, dass meine Liste Daten enthält. Adapter ist wie unten,Populate erweiterbare Listview mit benutzerdefinierten Listenobjekte in Android
public class salItemsAdapter extends BaseExpandableListAdapter {
public List<ABSSALEITEM> extSetItems;
public Context context;
public LayoutInflater inflater;
public HashMap<Integer, List<ABSSALEITEM>> extSubSetItems;
public TextView txtSalItemHeaderClm1;
public TextView txtSalItemHeaderClm2;
public TextView txtSalItemHeaderClm3;
public TextView txtSalItemBottomText;
public salItemsAdapter(Context context, List<ABSSALEITEM> extSetItems, HashMap<Integer, List<ABSSALEITEM>> extSubSetItems) {
this.context = context;
this.extSetItems = extSetItems;
this.extSubSetItems = extSubSetItems;
}
@Override
public int getChildrenCount(int groupPosition) {
return extSubSetItems.get(extSetItems.get(groupPosition)).size();
}
@Override
public int getGroupCount() {
return extSetItems.size();
}
@Override
public Object getGroup(int groupPosition) {
return extSetItems.get(groupPosition);
}
@Override
public Object getChild(int groupPosition, int childPosition) {
return extSubSetItems.get(extSetItems.get(groupPosition)).get(childPosition);
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View view, ViewGroup parent) {
ABSSALEITEM setSalItem = (ABSSALEITEM)getGroup(groupPosition);
if(view == null)
{
inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.salitems_elv_head, parent, false);
}
txtSalItemHeaderClm1 = (TextView)view.findViewById(R.id.txtSalItemHeaderClm1);
txtSalItemHeaderClm2 = (TextView)view.findViewById(R.id.txtSalItemHeaderClm2);
txtSalItemHeaderClm3 = (TextView)view.findViewById(R.id.txtSalItemHeaderClm3);
txtSalItemHeaderClm1.setText(setSalItem.MAT);
txtSalItemHeaderClm2.setText(setSalItem.EXPLAIN);
txtSalItemHeaderClm3.setText(Double.toString(setSalItem.QUANT));
return view;
}
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View view, ViewGroup parent) {
ABSSALEITEM setSalItem = (ABSSALEITEM)getChild(groupPosition, childPosition);
if(view==null)
{
inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.salitems_elv_item, parent, false);
}
txtSalItemBottomText = (TextView)view.findViewById(R.id.txtSalItemBottomText);
txtSalItemBottomText.setText(setSalItem.LONGEXP);
return view;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return false;
}
}
Und ich fülle meine Datenobjekte wie
private void FillExpListView(List<ABSSALEITEM> paSalSetItems, List<ABSSALEITEM> paSalSetSubItems) {
hbSubSetItems = new HashMap<Integer, List<ABSSALEITEM>>();
List<ABSSALEITEM> tmp = new ArrayList<ABSSALEITEM>(paSalSetSubItems);
List<ABSSALEITEM> tmp2 = new ArrayList<ABSSALEITEM>();
Integer tmpItemnum = 0;
for (ABSSALEITEM tmpSalItem : tmp) {
tmpItemnum = tmpSalItem.ITEMNUM;
if(!hbSubSetItems.containsKey(tmpItemnum))
{
tmp2.clear();
for (ABSSALEITEM tmpSalItem2 : paSalSetSubItems) {
if (tmpItemnum == tmpSalItem2.ITEMNUM) {
tmp2.add(tmpSalItem2);
}
}
hbSubSetItems.put(tmpSalItem.ITEMNUM, tmp2);
}
}
adapterSalItems = new salItemsAdapter(salitems.this, paSalSetItems, hbSubSetItems);
elvSalItems.setAdapter(adapterSalItems);
}
Vielen Dank für Hilfe
Danke Vishwesh Jainkuniya aber soll ich verstehen, dass es keine Möglichkeit gibt, kundenspezifische Adapter für Liste zu verwenden