对此进行了几天研究之后,我发布了我的问题,希望您能够帮助我。 我正在使用ExpandableListView和CursorTreeAdapter来显示数据库中的数据。该组的数据显示没有问题。当我展开一个组来展示孩子时,我会上下滚动,孩子们的数据会发生变化。例如父母A,B,C有一个孩子,每个孩子都有数据A1,B1和C1。当我展开父A和C并向上和向下滚动时,A1数据更改(大多数情况下为B1数据)。只有当我崩溃C的温度将A1数据为母公司A.带CursorTreeAdapter的ExpandableListView当滚动上下时展开扩展组更改
子布局
你可以建议,为什么它是happenning,什么可以做再一次说明了什么?
下面是从newGroupView,bindGroupView,newChildView,bindChildView我CursorTreeAdapter代码:
public class MyCursorTreeAdapter extends CursorTreeAdapter {
String name = "";
String phone = "";
String cityStreet = "";
String userNote2 = "";
DBConnector values;
long id = 0;
DBConnector cmpDb;
LayoutInflater mInflater;
Context context;
int oldGroupPosition;
public MyCursorTreeAdapter(Context context, Cursor cursor) {
super(cursor, context);
this.context = context;
values = new DBConnector(context);
this.values = values;
cmpDb = new DBConnector(context);
}
@Override
public View newGroupView(Context context, Cursor cursor, boolean isExpanded, ViewGroup parent) {
final View view = mInflater.inflate(R.layout.group_list_view, parent, false);
return view;
}
@Override
public void bindGroupView(View view, Context context, Cursor cursor, boolean isExpanded) {
TextView textsubText1 = (TextView) view.findViewById(R.id.subText1);
TextView textsubText2 = (TextView) view.findViewById(R.id.subText2);
textsubText1.setText(cursor.getString(cursor.getColumnIndex(values.Name)));
textsubText2.setText(cursor.getString(cursor.getColumnIndex(values.Name)));
userNote2 = cursor.getString(cursor.getColumnIndex(values.Note2));
}
@Override
public View newChildView(Context context, Cursor cursor, boolean isLastChild, ViewGroup parent) {
final View view = mInflater.inflate(R.layout.child_view, parent, false);
return view;
}
@Override
public void bindChildView(final View view, final Context context, final Cursor cursor, boolean isLastChild) {
values.open();
TextView nameTv = (TextView) view.findViewById(R.id.tvName);
TextView phoneTv = (TextView) view.findViewById(R.id.tvPhone);
TextView addressTv = (TextView) view.findViewById(R.id.tvAddress);
ImageButton btData1 = (ImageButton) view.findViewById(R.id.btData1);
ImageButton btData2 = (ImageButton) view.findViewById(R.id.btData2);
ImageButton btSaveData = (ImageButton) view.findViewById(R.id.btSaveData);
extractDataFromUserNote2();
nameTv.setText(""+ name);
phoneTv.setText(""+ phone);
addressTv.setText(""+ cityStreet);
android.view.View.OnClickListener doWithBtData1 = new Button.OnClickListener() {
@Override
public void onClick(View v) {
// action on btData1
}
};
android.view.View.OnClickListener doWithBtData2 = new Button.OnClickListener() {
@Override
public void onClick(View v) {
// action on btData2
}
};
android.view.View.OnClickListener doWithBtSaveData = new Button.OnClickListener() {
@Override
public void onClick(View v) {
// action on btSaveData
}
};
btData1.setOnClickListener(doWithBtData1);
btData2.setOnClickListener(doWithBtData2);
btSaveData.setOnClickListener(doWithBtSaveData);
values.close();
}
@Override
protected Cursor getChildrenCursor(Cursor groupCursor) {
return getCursor();
}
@Override
public int getChildrenCount (int groupPosition) {
return 1;
}
@Override
public void onGroupCollapsed (int groupPosition) {
}
@Override
public void onGroupExpanded (int groupPosition) {
}
protected Cursor setChildrenCursor(Cursor groupCursor) {
return groupCursor;
}
@Override
public void setGroupCursor (Cursor cursor) {
}
感谢。