I am populating my ExpandableListView from SQLite.. The problem I am facing is that I have repeating parent/group in my ExpandableListView.
I am using the following code to populate my ExpandableListView
ExpandableListView expLV;
Cursor mGroupsCursor;
MyExpandableListAdapter mAdapter;
PedometerDB mDbHelper;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.activity_history, container, false);
expLV = (ExpandableListView) v.findViewById(R.id.expLV);
mDbHelper = new PedometerDB(getActivity());
fillData();
return v;
}
private void fillData() {
mDbHelper.open();
mGroupsCursor = mDbHelper.fetchGroup();
mGroupsCursor.moveToFirst();
mAdapter = new MyExpandableListAdapter(mGroupsCursor, getActivity(),
R.layout.elv_parent, R.layout.elv_child,
new String[] { PedometerDB.KEY_MONTH },
new int[] { R.id.tvMonth }, new String[] {
PedometerDB.KEY_STEPS, PedometerDB.KEY_DATE_TIME,
PedometerDB.KEY_DISTANCE, PedometerDB.KEY_WEATHER,
PedometerDB.KEY_FEELING }, new int[] {
R.id.tvStepsDatabase, R.id.tvDateDatabase,
R.id.tvDistanceDatabase, R.id.ivWeatherDatabase,
R.id.ivFeelingDatabase });
expLV.setAdapter(mAdapter);
mDbHelper.close();
}
public class MyExpandableListAdapter extends SimpleCursorTreeAdapter {
public MyExpandableListAdapter(Cursor cursor, Context context,
int groupLayout, int childLayout, String[] groupFrom,
int[] groupTo, String[] childrenFrom, int[] childrenTo) {
super(context, cursor, groupLayout, groupFrom, groupTo,
childLayout, childrenFrom, childrenTo);
}
@Override
protected Cursor getChildrenCursor(Cursor groupCursor) {
mDbHelper.open();
Cursor childCursor = mDbHelper.fetchChildren(groupCursor
.getString(groupCursor.getColumnIndex("month")));
childCursor.moveToFirst();
mDbHelper.close();
return childCursor;
}
}
PedometerDB:
public Cursor fetchGroup() {
String query = "SELECT * FROM " + PEDOMETER_TABLE;
return ourDatabase.rawQuery(query, null);
}
public Cursor fetchChildren(String month) {
String query = "SELECT * FROM " + PEDOMETER_TABLE + " WHERE "
+ KEY_MONTH + " = '" + month + "'";
return ourDatabase.rawQuery(query, null);
}
Aucun commentaire:
Enregistrer un commentaire