我正在创建一个应用程序,用于创建包含子项列表中各种项目的可扩展列表。我的问题是,我希望最好在所有孩子之后添加一个按钮,或者作为每个小组的最后一个孩子,但是当我尝试这样做时,我打开任何其他一组孩子后添加大量按钮而不是每个列表一个按钮时列表故障在最后的位置。 我在文件中有:
main_activity.java + xml,
child.xml,
group.xml,
ExpandListAdapter.java
这是代码在相关部分中的现状:
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
Child child = (Child) getChild(groupPosition, childPosition);
if (isLastChild == true) {
LayoutInflater infalInflater2 = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater2.inflate(R.layout.button, null);
}
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.child_item, null);
TextView tv = (TextView) convertView.findViewById(R.id.country_name);
tv.setText(child.getName().toString());
}
return convertView;
}
我注意到每次打开一个新组时,整个视图的所有子项都会重新填充,所以转换视图仍然在其内存中有所述按钮会出现问题吗?
我试图将按钮移动到第二个“ if ”然后使用相同的inflater,但同样的事情发生了,按钮似乎随机地替换了每个组的孩子。我想过手动添加按钮可能在主要活动中,但如果我理解正确,那么孩子本身就是convertView所以我不能真正使用它..
是否值得尝试使用ExpandableListView执行此操作?之后我会想要里面的按钮将孩子添加到他们所在的组中,并且要删除它们的其他按钮,这个课程还可以使用它还是我需要做大量的体操?
感谢您的帮助,我可以从代码中添加更多内容,请通知我,抱歉我的英文不好。