Android SQLite getColumnIndex

时间:2017-06-08 16:20:29

标签: android sqlite

这是设置表格列

的合同类中的代码
  public static final String _ID = BaseColumns._ID;
    public static final String TABLE_NAME = "tools";
    public static final String COLUMN_TOOL_TYPE = "type";
    public static final String COLUMN_COST = "cost";
    public static final String COLUMN_IN_STOCK = "in_stock";
    public static final String COLUMN_STOCK_LEVEL = "stock_quantity";
    public static final String COLUMN_PICTURE = "picture";

正在创建数据库,我可以添加虚拟数据,并在COLUMN_PICTURE列中添加了一个drawable示例。但是当我使用

 int imgColumnIndex = cursor.getColumnIndex(ToolEntry.COLUMN_PICTURE);

澄清这一行是来自bindView方法

int typeColumnIndex = cursor.getColumnIndex(ToolEntry.COLUMN_TOOL_TYPE);
int costColumnIndex = cursor.getColumnIndex(ToolEntry.COLUMN_COST);
int stockLevelColumnIndex = cursor.getColumnIndex(ToolEntry.COLUMN_STOCK_LEVEL);
int indicatorStock = cursor.getColumnIndex(ToolEntry.COLUMN_IN_STOCK);
int imgColumnIndex = cursor.getColumnIndex(ToolEntry.COLUMN_PICTURE);

所有其他columnindex都可以正常工作。我确实在其他人之后添加了图片列。但我已清除应用程序中的缓存/存储数据并将其卸载。

它总是返回-1。光标正在工作,因为它返回其他列的正确值。下面显示的是带有虚拟数据的SQLite数据库的转储。然后我用零写了第二行的BLOB条目。所以我可以使用内容值     values.put(ToolEntry.COLUMN_PICTURE,0);

Image of Database

但是当我尝试使用
时     toolImg = cursor.getBlob(imgColumnIndex);

当索引为-1

时崩溃

1 个答案:

答案 0 :(得分:0)

这对我来说是一个愚蠢的错误。我在一个地方正确定义了我的投影,但在另一个投影定义中遗漏了新列。