我有一个 BaseExpandableListAdapter 类,而 getChildView() 必须只返回几行。但是,当然,返回 null 会使应用程序崩溃,并且将可见性设置为 GONE 会在列表中创建一个空白区域。
因此,用户在每一行中都有一个复选框,并且当他下次打开列表时选中一个复选框时,它不会出现(就像从 ArrayAdapter 中删除,但我不能这样做)。
有什么好的选择吗?
编辑
@Override
public int getChildrenCount(int groupPosition) {
int childrenCount = categories.get(groupPosition).size();
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context);
/** If the user wants to remove the completed items */
if (settings.getBoolean("deleteCompletedItemsPref", false) == true) {
for (int childPosition=0; childPosition<childrenCount; childPosition++) {
if (categories.get(groupPosition).getItem(childPosition).isChecked()) {
parent.removeViewAt(childPosition);
}
}
}
return childrenCount;
}
在这里,我运行该组的孩子并尝试删除不需要的视图,尽管我无法在此处删除视图,因为它是一个 AdapterView。