Ich habe eine erweiterbare Listenansicht. Das Kind davon wird von einer Hash-Karte bevölkert. Was ich versuche zu tun ist, ich möchte eine Ansicht für das erste und letzte Kind eines Schlüssels von Hash-Karte anzeigen und dann für andere ausblenden. Derzeit versuche ich dies auf folgende Weise zu erreichen und es funktioniert nicht. Erwähnt ist die getChildView-Methode meiner EpandableListAdapter-Klasse.Wie ermittelt man das erste und letzte Kind für einen Schlüssel in Hash Map?
@Override
public View getChildView(int groupPosition, final int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
final String childText = (String) getChild(groupPosition, childPosition);
LinearLayout titleLayout = null;
LinearLayout sumTotalLayout = null;
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) this._context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.order_form_history_viewable, null);
titleLayout = (LinearLayout) convertView.findViewById(R.id.llOrderHistroryTitles);
sumTotalLayout = (LinearLayout) convertView.findViewById(R.id.llOrderHistroryTotals);
}
if (childPosition==0 && titleLayout != null) {
titleLayout.setVisibility(View.VISIBLE);
} else if (titleLayout != null) {
titleLayout.setVisibility(View.GONE);
}
// int childSize = this._listDataChild.get(this._listDataHeader.get(groupPosition))
.size();
if (isLastChild && sumTotalLayout != null) {
sumTotalLayout.setVisibility(View.VISIBLE);
} else if (sumTotalLayout != null) {
sumTotalLayout.setVisibility(View.GONE);
}
// if (childPosition == childSize-1 && sumTotalLayout!=null){
// sumTotalLayout.setVisibility(View.VISIBLE);
// }else if (sumTotalLayout!=null){
// sumTotalLayout.setVisibility(View.GONE);
// }
TextView txtListChild = (TextView) convertView
.findViewById(R.id.tvOrderlistBrand);
txtListChild.setText(childText);
return convertView;
}
Plain-Hash-Karten haben keine garantierte Reihenfolge. 'LinkedHashMap' funktioniert, aber das ist eine andere Sache. Welche Reihenfolge hast du erwartet? Was meinst du (* genau *) mit "es funktioniert nicht"? –
Sie überprüfen, ob (convertView == null), aber wo ist der andere Teil, wenn covertView nicht gleich null ist? –
Derzeit überprüfe ich die Kindposition und wenn der Parameter childPosition 0 ist, dann ist es das erste Kind. Für das letzte Kind betrachte ich den booleschen Parameter isLastChild. Dieser Prozess funktioniert nicht und ich bekomme nicht das gewünschte Ergebnis. Bitte sehen Sie die oben genannte Methode – user3393926