Ich mache eine ExpandableListView folgen viele Tutorial und einige Fehler Fragen von SO. Die Elternliste besteht aus zwei TextView und einem ImageButton mit Standardlayout. Die Child-Liste besteht aus einem einzelnen TextView. Die Datenquelle stammt von der SQLite-Datenbank aus Aktivität und wird in ArrayList generiert.Android ExpandableListView getChildView nicht triggern
Das Problem:
Irgendwie ist die übergeordnete Gruppe Liste arbeitet normal weiter, auch die Taste funktioniert, aber wenn ich zu erweitern versuchen, es wird nicht erweitern. Also versuche ich, eine Toast-Nachricht zu setzen, aber nach dem Öffnen der Aktivität, aber es sieht aus wie getChildView()
Methode überhaupt nicht auslösen, weil die Toast-Nachricht überhaupt nicht angezeigt wird.
Die ExpandableListAdapter Klasse ist wie dieser
public class InventoryListExpandableListAdapter extends BaseExpandableListAdapter {
private Context context;
private ArrayList<Inventory> data;
private HashMap<String, ArrayList<String>> list_data;
public InventoryListExpandableListAdapter(Context context, ArrayList<Inventory> data, HashMap<String, ArrayList<String>> list_data) {
this.context = context;
this.data = data;
this.list_data = list_data;
}
@Override
public int getGroupCount() {return data.size();}
@Override
public int getChildrenCount(int groupPosition) {return list_data.get(data.get(groupPosition)).size();}
@Override
public Inventory getGroup(int groupPosition) {return data.get(groupPosition);}
@Override
public Object getChild(int groupPosition, int childPosition) {return list_data.get(data.get(groupPosition).getCode()).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 true;}
@Override
public View getGroupView(final int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
if (convertView == null) {
final Inventory inventory = getGroup(groupPosition);
convertView = View.inflate(context, R.layout.listview_layout_two_row_delete, null);
ImageButton btnDelete = (ImageButton)convertView.findViewById(R.id.btnDelete);
TextView text1 = (TextView)convertView.findViewById(R.id.text1);
TextView text2 = (TextView)convertView.findViewById(R.id.text2);
text1.setText(inventory.getCode());
text2.setText(inventory.getItem());
btnDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(context, "DELETED", Toast.LENGTH_SHORT).show();
}
});
}
return convertView;
}
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
final String childText = (String)getChild(groupPosition, childPosition);
LayoutInflater infalInflater = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null) {
convertView = infalInflater.inflate(R.layout.listview_layout_single_text, null);
}
Toast.makeText(context, "Make Child number "+String.valueOf(childPosition), Toast.LENGTH_SHORT).show();
TextView text1 = (TextView)convertView.findViewById(R.id.text1);
text1.setText(childText);
return convertView;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
}
ich für jede Hilfe schätzen Sie geben. Vielen Dank.
wenn es nicht wahrscheinlich genannt, weil 'getChildrenCount' ist 0 – Blackbelt
Rückkehr ich es überprüft haben und die Größe ist nicht 0 – poring91