-1
私はexpandableListビューを持っています。その子はハッシュマップから作成されます。私がしようとしているのは、ハッシュマップからキーの最初と最後の子のビューを表示し、次に他のもののために非表示にしたいということです。現在、私は次の方法でこれを達成しようとしており、動作していません。以下に、私のEpandableListAdapterクラスのgetChildViewメソッドを挙げます。ハッシュマップでキーの最初と最後の子を特定する方法は?
@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;
}
プレーンハッシュマップは保証された順序を持っていません。 'LinkedHashMap'は行いますが、それは別の問題です。あなたは何を期待していましたか? 「うまくいきません」とはどういう意味ですか? –
あなたは(convertView == null)かどうかを確認していますが、covertViewがnullと等しくないときはelse部分はどこですか? –
現在のところ、子の位置を確認していて、childPositionパラメータが0の場合は最初の子です。最後の子については、ブール値のパラメータisLastChildを検討しています。このプロセスは機能しておらず、私が望む結果が得られません。可能であれば、上記の方法を参照してください – user3393926