【发布时间】:2016-05-19 01:25:46
【问题描述】:
Screnshot of 当我从ExpandableListView 检查前三个CheckBoxes 并从中展开第一个或第二个项目然后第二个CheckBox 自动未选中,最后一个CheckBox 自动已检查
这是它的Screenshot。
这是我的自定义适配器代码
public class MyBaseExpandableListAdapter extends BaseExpandableListAdapter{
Context context;
ArrayList<Group_Items> group_al;
public MyBaseExpandableListAdapter(Context context,ArrayList<Group_Items> group_al) {
this.context=context;
this.group_al=group_al;
}
@Override
public Object getChild(int groupPosition, int childPosition) {
ArrayList<Child_Items> chList = group_al.get(groupPosition).getItems();
return chList.get(childPosition);
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView,
ViewGroup parent) {
Child_Items ch = (Child_Items) getChild(groupPosition, childPosition);
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) context
.getSystemService(context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.expandable_child_items, null);
}
TextView child = (TextView) convertView.findViewById(R.id.child);
TextView dd = (TextView) convertView.findViewById(R.id.dd);
TextView date= (TextView) convertView.findViewById(R.id.date);
child.setText(ch.getChild_title().toString());
dd.setText(ch.getDd().toString());
date.setText(ch.getDate().toString());
return convertView;
}
@Override
public int getChildrenCount(int groupPosition) {
ArrayList<Child_Items> chList = group_al.get(groupPosition).getItems();
return chList.size();
}
@Override
public Object getGroup(int groupPosition) {
return group_al.get(groupPosition);
}
@Override
public int getGroupCount() {
return group_al.size();
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
Group_Items gr = (Group_Items) getGroup(groupPosition);
long group_id = getGroupId(groupPosition);
if (convertView == null) {
LayoutInflater inf = (LayoutInflater) context
.getSystemService(context.LAYOUT_INFLATER_SERVICE);
convertView = inf.inflate(R.layout.expandable_group_items, null);
}
TextView title = (TextView) convertView.findViewById(R.id.title);
title.setText(gr.getName());
CheckBox chk=(CheckBox) convertView.findViewById(R.id.chk);
return convertView;
}
@Override
public boolean hasStableIds() {
return true;
}
@Override
public boolean isChildSelectable(int arg0, int arg1) {
return false;
}
}
【问题讨论】:
-
你是否在 Group_Items pogo 类中存储了检查值?
-
由于view被回收了,所以每次调用getChildView方法时需要手动维护自己打勾的位置并更新
-
@user3676184 我没有存储任何值
-
@MuchOverflow 你能告诉我我是如何维持这个职位的吗??
标签: android expandablelistview