カスタム アダプターを備えた ExpandableListView があります。各親 (またはグループ) には TextView があり、各子 (アイテム) には textview とスイッチがあります。私の ChildModel には、文字列名 (TextView) と String[] 選択肢 (スイッチ) があります。ただし、ListView を展開するとスイッチの値が変わるため、レイアウトが適切に膨張していないと思います。これが私のコードです
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater inflater = (LayoutInflater)ctx.getSystemService
(Context.LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.listview_row_child, parent, false);
}
TextView itemName = (TextView) v.findViewById(R.id.itemName);
Swith itemDescr = (Switch) v.findViewById(R.id.itemDescr);
ChildModel det = catList.get(groupPosition).getItemList().get(childPosition);
itemName.setText(det.getName());
// itemDescr.setText(det.getChoices()[0] + det.getChoices()[1]);
itemDescr.setTextOff(det.getChoices()[0]);
itemDescr.setTextOn(det.getChoices()[1]);
return v;
}
私が理解できない部分は、SwitchをTextViewに変更し、コメントアウトされた上記の行を使用すると、正しく表示されることです。誰かが私に理由を説明できますか? ありがとう!
スイッチに切り替えると、ツールバーの向きが「左/右」ではなく「はい/いいえ」になり、測定単位に「メートル/フィート」が表示されなくなったことに注意してください