1.crash:Android Exception 8(Couldn't read row 0, col -1 from CursorWindow)
(1)原因1:字段不正确
c.getString(c.getColumnIndex("_ID")//字段名称不正确
(2)query的中projection 字段没有补全
public final Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder);
最好是将projection置为null,否则cursor仅仅可以查询projection中的字段;
2.当Listview有header时,onItemClick里的position不正确
当给ListView加了一个HeaderView后(代码如下),我们发现,onItemClick方法里的position参数的值不是我们所期望的,比如点击ListView的第一行,我们期望的position是0,可是实际上却是1,也就是说,它是从Header而不是从第一行开始计数的。
解决方法;
把onItemClick改成下面这样,就可以了
(1)原因1:字段不正确
c.getString(c.getColumnIndex("_ID")//字段名称不正确
(2)query的中projection 字段没有补全
public final Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder);
最好是将projection置为null,否则cursor仅仅可以查询projection中的字段;
2.当Listview有header时,onItemClick里的position不正确
当给ListView加了一个HeaderView后(代码如下),我们发现,onItemClick方法里的position参数的值不是我们所期望的,比如点击ListView的第一行,我们期望的position是0,可是实际上却是1,也就是说,它是从Header而不是从第一行开始计数的。
解决方法;
把onItemClick改成下面这样,就可以了
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
doSomething(parent.getAdapter().getItem(position));
}