Добрых утра, ребят,ExpandableListAdapter с помощью вложенной LinkedHashMap
Мне нужно создать пользовательский адаптер, используя следующий вложенный связанный HashMap: LinkedHashMap<String, LinkedHashMap<String, Class<?>>>
. Я расширяю BaseExpandableListAdapter
и внедряю необходимые методы. Я написал следующий код, чтобы получить имена групп из LinkedHashMap
:
private Context context;
private LinkedHashMap<String, LinkedHashMap<String, Class<?>>> menuOptions;
public customMenuAdapter(Context context, LinkedHashMap<String, LinkedHashMap<String, Class<?>>> menuOptions)
{
this.context = context;
this.menuOptions = menuOptions;
}
@Override
public Object getGroup(int groupPosition)
{
return this.menuOptions.get(groupPosition);
}
@Override
public long getGroupId(int groupPosition)
{
return groupPosition;
}
@Override
public int getGroupCount()
{
return this.menuOptions.size();
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent)
{
String gpsMenuGroupTitle = (String) getGroup(groupPosition);
if (convertView == null) {
LayoutInflater gpsGroupInflater = (LayoutInflater) this.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = gpsGroupInflater.inflate(R.layout.gps_menu_list_header, null);
}
TextView gpsListHeaderText = (TextView) convertView.findViewById(R.id.gps_menu_list_header);
gpsListHeaderText.setText(gpsMenuGroupTitle);
return convertView;
}
Я должен получить дочерние элементы из вложенного LinkedHashMap
, и я понятия не имею, как это сделать.
В способе getChild
я просто return this.menuOptions.get(groupPosition).get(childPosition);
? Должен ли я создать поле и извлечь в него вложенный LinkedHashMap
?
Любой совет будет оценен!
Это то, что я сделал первоначально, но мой работодатель настаивает на том, что мы используем вложенный 'LinkedHashMap'. Мы планируем позже масштабировать и делать это таким образом, что упрощает масштабирование в теории, но делает создание начальных «суперклассов» намного сложнее, и я зацикливаюсь на этом. Обидно поставить код в «LinkedHashMap» не слишком сложно, но работа с ним в адаптере тогда сложнее –
Так что я думаю, что это будет вложенный LinkedHashMap. Затем в вашем getchild() вы будете делать что-то вроде этого. Строка key = menuoption.get (groupPosition) menuOptions.get (key) .get (key) .getClass(); – umerk44