- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想从 SQLite 数据库获取数据并通过 SimpleCursorTreeAdapter 填充我的 ExpandableListView,但它在某些地方失败了。我真的找不到问题所在,甚至不知道异常发生在哪里......
我的扩展列表适配器:
private class MyExpandableListAdapter extends SimpleCursorTreeAdapter
{
public MyExpandableListAdapter(Context context, Cursor cursor,
int groupLayout, String[] groupFrom, int[] groupTo,
int childLayout, String[] childFrom, int[] childTo) {
super(context, cursor, groupLayout, groupFrom, groupTo, childLayout, childFrom,
childTo);
// TODO Auto-generated constructor stub
}
@Override
protected Cursor getChildrenCursor(Cursor groupCursor) {
Log.d("Calling getChildrenCursor()","OK");
Cursor childrenCursor = dbAdapter.getTrackedValuesByDate(groupCursor.getString(groupCursor.getColumnIndex(DbAdapter.KEY_VALUE_DATE)));
Log.d("getChildrenCursor()", DatabaseUtils.dumpCursorToString(childrenCursor));
startManagingCursor(childrenCursor);
return childrenCursor;
}
}
这是我设置 ListAdapter 的 Activity 中的相关部分:
private void fillData()
{
Cursor dateCursor = dbAdapter.getAllDates();
startManagingCursor(dateCursor);
Log.d("fillData()", DatabaseUtils.dumpCursorToString(dateCursor));
MyExpandableListAdapter myAdapter = new MyExpandableListAdapter(this,
dateCursor,
R.layout.expandablelist_header_date,
new String[] {DbAdapter.KEY_VALUE_DATE},
new int[]{R.id.expandablelist_header_date},
R.layout.listview_tracked_values,
new String[] {DbAdapter.KEY_INDICATOR_NAME, DbAdapter.KEY_INDICATOR_UNIT, DbAdapter.KEY_VALUE_VALUE},
new int[]{R.id.list_trackedvalue_indicatorname, R.id.list_trackedvalue_unit, R.id.list_trackedvalue_value });
Log.d("fillData()", "Creation successful");
this.expandableList.setAdapter(myAdapter);
Log.d("fillData()", "Adapter set");
}
以下是我的 dbAdapter 使用的两个函数:
public Cursor getTrackedValuesByDate(String dateString)
{
Cursor cursor = this.db.rawQuery("select * from "+DB_INDICATORS_TABLE+" i,"+ DB_VALUES_TABLE+" v where i."
+ KEY_INDICATOR_ROWID+"=v."+KEY_VALUE_INDICATOR_ID+" and v."+KEY_VALUE_DATE+"='"+dateString+"'", null);
if(cursor!=null)
cursor.moveToFirst();
Log.d("getTrackedValuesByDate()", DatabaseUtils.dumpCursorToString(cursor));
return cursor;
}
public Cursor getAllDates()
{
Cursor c = this.db.rawQuery("Select distinct "+KEY_VALUE_DATE+" from "+DB_VALUES_TABLE, null);
if(c!=null)
c.moveToFirst();
Log.d("getAllDates()", DatabaseUtils.dumpCursorToString(c));
return c;
}
最后是 LogCat 的输出:
09-07 12:05:06.912: D/fillData()(1317): >>>>> Dumping cursor android.database.sqlite.SQLiteCursor@41219990
09-07 12:05:06.912: D/fillData()(1317): 0 {
09-07 12:05:06.912: D/fillData()(1317): trackDate=07.09.2012
09-07 12:05:06.912: D/fillData()(1317): }
09-07 12:05:06.912: D/fillData()(1317): 1 {
09-07 12:05:06.912: D/fillData()(1317): trackDate=08.08.2012
09-07 12:05:06.912: D/fillData()(1317): }
09-07 12:05:06.912: D/fillData()(1317): <<<<<
09-07 12:05:06.952: D/fillData()(1317): Creation successful
09-07 12:05:06.952: D/fillData()(1317): Adapter set
09-07 12:05:07.012: E/CursorWindow(1317): Failed to read row 0, column -1 from a CursorWindow which has 2 rows, 1 columns.
09-07 12:05:07.012: D/AndroidRuntime(1317): Shutting down VM
09-07 12:05:07.048: W/dalvikvm(1317): threadid=1: thread exiting with uncaught exception (group=0x40a13300)
09-07 12:05:07.145: E/AndroidRuntime(1317): FATAL EXCEPTION: main
09-07 12:05:07.145: E/AndroidRuntime(1317): java.lang.IllegalStateException: Couldn't read row 0, col -1 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.
09-07 12:05:07.145: E/AndroidRuntime(1317): at android.database.CursorWindow.nativeGetLong(Native Method)
09-07 12:05:07.145: E/AndroidRuntime(1317): at android.database.CursorWindow.getLong(CursorWindow.java:507)
09-07 12:05:07.145: E/AndroidRuntime(1317): at android.database.AbstractWindowedCursor.getLong(AbstractWindowedCursor.java:75)
09-07 12:05:07.145: E/AndroidRuntime(1317): at android.widget.CursorTreeAdapter$MyCursorHelper.getId(CursorTreeAdapter.java:436)
09-07 12:05:07.145: E/AndroidRuntime(1317): at android.widget.CursorTreeAdapter.getGroupId(CursorTreeAdapter.java:191)
09-07 12:05:07.145: E/AndroidRuntime(1317): at android.widget.ExpandableListConnector.getItemId(ExpandableListConnector.java:422)
09-07 12:05:07.145: E/AndroidRuntime(1317): at android.widget.AbsListView.obtainView(AbsListView.java:2288)
09-07 12:05:07.145: E/AndroidRuntime(1317): at android.widget.ListView.measureHeightOfChildren(ListView.java:1244)
09-07 12:05:07.145: E/AndroidRuntime(1317): at android.widget.ListView.onMeasure(ListView.java:1156)
09-07 12:05:07.145: E/AndroidRuntime(1317): at android.view.View.measure(View.java:15172)
09-07 12:05:07.145: E/AndroidRuntime(1317): at android.widget.RelativeLayout.measureChild(RelativeLayout.java:602)
09-07 12:05:07.145: E/AndroidRuntime(1317): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:415)
09-07 12:05:07.145: E/AndroidRuntime(1317): at android.view.View.measure(View.java:15172)
09-07 12:05:07.145: E/AndroidRuntime(1317): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814)
09-07 12:05:07.145: E/AndroidRuntime(1317): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
09-07 12:05:07.145: E/AndroidRuntime(1317): at android.view.View.measure(View.java:15172)
如你所见,我上次的debug.log是Adapter设置为ListView,但是随后是芬尼托...我什至没有收到覆盖函数 getChildrenCursor(Cursor groupCursor) 被调用的日志消息,所以错误发生我不知道在哪里...
帮帮我,我要疯了...
最佳答案
来自 CursorTreeAdapter 的文档,它是 SimpleCursorTreeAdapter 的间接父级,您可以看到:
The Cursors must include a column named "_id" or this class will not work.
您在查询中遗漏了什么。
关于android - 将 SimpleCursorTreeAdapter 用于 ExpandableList 会产生错误 "Failed to read row 0, column -1"。找不到错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12317956/
我正在关注本教程:ExpandableListView 但在我的设备(Samsung Galaxy S i9000)中,文本与可扩展图标重叠,如图所示。 我怎样才能避免这种情况?谢谢 最佳答案 这个例
我希望在长按 ExpandableList 时为每个组创建一个菜单。但目前只有非空组在长按时显示蓝色背景并且可以选择。所有空组都不会对长按使用react。 我使用 registerForContext
我正在尝试显示一个多深度的可扩展列表。也就是说,我们有一个表头 ID |学校 |年级 |姓名 我想展示一个可扩展的列表学校 - 年级 - 姓名 学校是第一个深度,等级是第二个深度,名字是叶节点。我了解
我有一个 expandableList,在子元素中我添加了一些 EditText、复选框和微调器。这些已正确创建和显示。选中复选框后会显示其他 EditText 和微调器,然后用户可以添加文本并从微调
问题很简单,但我做不出来。我有一个带有 3 个标题的可扩展列表,它们可以是填充的也可以是空的。 我希望在您展开一个空的组时显示一个简单的 TextView ,我已经找了一段时间但似乎没有任何效果。我不
每个组 View 我只有 1 个 subview ,它是从布局 .xml 文件扩展而来的。我希望为 subview 设置动画,以便在显示子项时,其下方的列表项向下滑动。我尝试了一些动画,但问题是首先使
我正在尝试个性化 ExpandableLisTview 我创造 Iterator.Xml:带有 ExpandableList View group.xml:具有简单 TextView 和 Button
我正在创建使用可扩展列表 View 的android应用,每个子项都包括图像 View 和扩展了 BaseExpandableAdapter 的文本。 图像在可绘制的forlder中,我使用数组检索它
我一直在使用自定义的 ExpandableList(参见下面的示例图片),其中每个项目始终有一个子项。这个 child 由三部分组成。每个部分都有一个标题(红色条),下面是一个空项目或项目列表。此列表
这个问题可能很菜鸟,但我就是找不到正确的解决方案。 所以这是我的问题: 我想在多个 ExpandableLists(比如说 5 个)中显示数据(一个 java.util.List 和我的 TaskOb
我只想一次展开父列表中的一项,目前我的 onCreate 代码如下。 (按我的意愿工作,但是一次只允许一个父打开的方法不起作用) public void onCreate(Bundle savedIn
我根据要编辑的editText的结果,得到Expandable List里面的editText为childcount的个数。但 editText 位置总是不同或 childcount 出错,我收到此错
这是我的 XML 布局文件,我正在使用 chrisbanes pull 来刷新库 here 出于某种原因,它只会显示可点击项目的可展开列表中的第一
我有关于 onChildClickListener 的代码,如下面的代码 fragment OnChildClickListener occl = new OnChildClickListener()
如何折叠 Expandable List 中的所有 ChildView 组。现在我有两个按钮来控制 Activity 上的全部展开和全部折叠。可扩展按钮没问题,它正在工作,但我不知道如何折叠所有 Ch
我想从 SQLite 数据库获取数据并通过 SimpleCursorTreeAdapter 填充我的 ExpandableListView,但它在某些地方失败了。我真的找不到问题所在,甚至不知道异常发
我是一名优秀的程序员,十分优秀!