使用com.example.android.notepad和ExpandableList2.java com.example.android.apis.view,我写了一个简单的应用程序 包含一个在sqlite中提供两个表的内容提供程序 数据库和使用我的ExpandableListActivity的显示活动 子类。我使用自己的布局为ExpandableList,和 组和子布局。数据库的内容正在 在显示活动中正确显示,并且组崩溃 并扩大。但是,如果我展开一个组,并点击一个孩子 选择它,我得到以下堆栈转储:
线程[< 3> main](暂停(异常IllegalStateException))
CursorWindow.getLong(int,int)行:331
SQLiteCursor(AbstractWindowedCursor).getLong(int)行:108
ContentResolver $ CursorWrapperInner(CursorWrapper).getLong(int)行:
127个
CursorTreeAdapter $ MyCursorHelper.getId(int)行:435
SongsList
$ SetListExpandableListAdapter(CursorTreeAdapter).getChildId(int,int)
行:172
ExpandableListConnector.getItemId(int)行:428
AbsListView $ PerformClick.run()行:1635
ViewRoot(Handler).handleCallback(消息)行:587
ViewRoot(处理程序).dispatchMessage(消息)行:92
Looper.loop()行:123
ActivityThread.main(String [])行:4203
Method.invokeNative(Object,Object [],Class,Class [],Class,int,
boolean)line:not available [native method]
Method.invoke(Object,Object ...)行:521
ZygoteInit $ MethodAndArgsCaller.run()行:791
ZygoteInit.main(String [])行:549
NativeStart.main(String [])行:不可用[native method]
My SimpleCursorTreeAdapter:
public class SetListExpandableListAdapter extends
SimpleCursorTreeAdapter {
public SetListExpandableListAdapter(Context context, Cursor cursor, 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 setListCursor) {
Uri.Builder builder =
SetListDefs.Songs.CONTENT_URI.buildUpon();
Uri songsUri = builder.build();
return managedQuery(songsUri, mSongProjection,
"SETLIST = '" +
Long.toString(setListCursor.getLong(mSetListIdColumnIndex)) + "'",
null, null);
}
}
我还没有能够在我的代码中设置断点 在抛出IllegalStateException之前。在我看来,我 做这些例子的事情,但显然我有一些东西 丢失。
非常感谢一些帮助。