int columnIndexFromAddrCountry;
public FavoritesActAdapter(Context context, int layout,
Cursor c, String[] from, int[] to) {
super(context, layout, c, from, to);
gnCursor = c;
columnIndexFromAddrCountry =
c.getColumnIndex(DBAdapter.KEY_FROM_ADDR_COUNTRY);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
gnCursor = getCursor();
final String fromAddrCountry =
gnCursor.getString(columnIndexFromAddrCountry);
...
super.bindView(view, context, cursor);
}
为什么我会收到IllegalStateException
?
IllegalStateException:获取字段槽 从第0行col -1失败
这个例外是什么意思?此行抛出异常
final String fromAddrCountry = gnCursor.getString(columnIndexFromAddrCountry);
因为columnIndexFromAddrCountry
是-1
。
该列存在,可以解析其他十列。什么可能导致这个问题?
提前致谢!
答案 0 :(得分:2)
DBAdapter.KEY_FROM_ADDR_COUNTRY
设置为什么?
public abstract int getColumnIndex (String columnName)
自:API Level 1返回 给定列的从零开始的索引 name,如果列不匹配,则返回-1 存在。如果您希望列到 存在使用 getColumnIndexOrThrow(String)代替, 这将使错误更加清晰
因此,您可以使用getColumnIndexOrThrow(String)
获得更好的错误消息,以帮助您进行调试。