问题描述
我正在尝试在 Android Studio 中创建一个食物日记,并且我正在使用 ExpandableListView 将食物分成几餐(组是餐号,组的孩子是 Food 类的变量,我创建)。在我找到的每个教程中,如何使儿童变量成为 Food 类而不是 String ?无法弄清楚如何正确编写适配器。而且,是否可以在单击按钮后添加组(膳食)? (假设用户决定要添加另一餐,所以他按下按钮,现在有 4 餐而不是 3 餐,在这种情况下是否可以命名组?)
这是使用字符串作为子变量的适配器
public class MainAdapter extends Baseexpandablelistadapter {
Context context;
List<String> listMeal;
HashMap<String,List<String>> listFood;
public MainAdapter(Context context,List<String> listMeal,HashMap<String,List<String>>
listFood){
this.context = context;
this.listMeal = listMeal;
this.listFood = listFood;
}
@Override
public int getGroupCount() {
return listMeal.size();
}
@Override
public int getChildrenCount(int groupPosition) {
return this.listFood.get(this.listMeal.get(groupPosition)).size();
}
@Override
public Object getGroup(int groupPosition) {
return this.listMeal.get(groupPosition);
}
@Override
public Object getChild(int groupPosition,int childPosition) {
return this.listFood.get(this.listMeal.get(groupPosition))
.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 false;
}
@Override
public View getGroupView(int groupPosition,boolean isExpanded,View convertView,ViewGroup parent) {
String group = (String) getGroup(groupPosition);
if(convertView == null){
LayoutInflater layoutInflater = (LayoutInflater) this.context
.getSystemService(context.LAYOUT_INFLATER_SERVICE);
convertView = layoutInflater.inflate(R.layout.list_group,null);
}
TextView textView = convertView.findViewById(R.id.list_parent);
textView.setText(group);
return convertView;
}
@Override
public View getChildView(int groupPosition,int childPosition,boolean isLastChild,ViewGroup parent) {
String child = (String) getChild(groupPosition,childPosition);
if (convertView == null){
LayoutInflater layoutInflater = (LayoutInflater) this.context
.getSystemService(context.LAYOUT_INFLATER_SERVICE);
convertView = layoutInflater.inflate(R.layout.list_item,null);
}
TextView textView = convertView.findViewById(R.id.list_child);
textView.setText(child);
return convertView;
}
@Override
public boolean isChildSelectable(int groupPosition,int childPosition) {
return true;
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)