Bender86
Lieutenant
- Registriert
- Jan. 2007
- Beiträge
- 718
Moin,
ich arbeite grade an einem Android App, bei dem ich eine ExpandableList verwende um Notizen und Kategorien anzuzeigen. Dabei sind die Kategorien die Obergruppen und die Notizen jeweils children ihrer Kategorie. Um die Daten in den View zu bekommen benutze ich einen SimpleCursorTreeAdapter und möchte in dessen onGroupExpanded() Methode alle Gruppen ausser der Ausgewählten schließen. Dazu müsste ich aber an den ExpandableListView kommen, da dieser die Methode "collapseGroup(int groupPos)" besitzt. Leider bin ich recht neu bei Android und weiß nicht wie ich an diesen komme, Google und die Doku haben mir bisher auch nicht helfen können. Mein Code sieht etwas gekürzt etwa so aus:
Ich hoffe hier kann mir jemand helfen.. Viele Grüße,
Bender
ich arbeite grade an einem Android App, bei dem ich eine ExpandableList verwende um Notizen und Kategorien anzuzeigen. Dabei sind die Kategorien die Obergruppen und die Notizen jeweils children ihrer Kategorie. Um die Daten in den View zu bekommen benutze ich einen SimpleCursorTreeAdapter und möchte in dessen onGroupExpanded() Methode alle Gruppen ausser der Ausgewählten schließen. Dazu müsste ich aber an den ExpandableListView kommen, da dieser die Methode "collapseGroup(int groupPos)" besitzt. Leider bin ich recht neu bei Android und weiß nicht wie ich an diesen komme, Google und die Doku haben mir bisher auch nicht helfen können. Mein Code sieht etwas gekürzt etwa so aus:
Code:
public class CategoryView extends ExpandableListActivity {
public static final String TAG = "CategoryView";
private DbAdapter db;
public MyExpandableListAdapter mAdapter;
int categoryIdColumnIndex;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setTitle("aNote");
setContentView(R.layout.category_view);
db = new DbAdapter(this);
db.open();
db.categories.createTestCategories();
db.notes.createTestNotes();
Cursor categoryCursor = db.categories.all();
startManagingCursor(categoryCursor);
categoryIdColumnIndex = categoryCursor.getColumnIndexOrThrow(DatabaseCategory.COL_ID);
mAdapter = new MyExpandableListAdapter(categoryCursor,
this,
R.layout.category_row,
R.layout.note_row,
new String[] {DatabaseCategory.COL_NAME},
new int[] {R.id.category_name},
new String[] {DatabaseNote.COL_NAME},
new int[] {R.id.note_name});
setListAdapter(mAdapter);
}
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 categoryCursor) {
long id = categoryCursor.getLong(categoryIdColumnIndex);
Cursor itemsCursor = db.categories.notesById(id);
startManagingCursor(itemsCursor);
return itemsCursor;
}
@Override
public void onGroupExpanded(int groupPosition) {
super.onGroupExpanded(groupPosition);
for(int i = 0; i < this.getGroupCount(); i++) {
if(i != groupPosition) {
// collapse the group i ...
}
}
}
}
}
Ich hoffe hier kann mir jemand helfen.. Viele Grüße,
Bender