2

我有一个包含 5 列的数据库,其中 1 列是 TEXT,其名称为 /res/drawable 文件夹。

    private void fillData() {

    mCursor = db2.getAllAchievements();
    startManagingCursor(mCursor);


    String[] from = new String[]{achHelper.ROW_NAME, achHelper.ROW_DESCRIPTION, achHelper.ROW_POINTS, achHelper.ROW_TROPHY};


    int[] to = new int[]{R.id.achTitle, R.id.achDescription, R.id.achPoints, R.id.trophy};

    SimpleCursorAdapter classes =
            new SimpleCursorAdapter(this, R.layout.ach_row, mCursor, from, to);
    setListAdapter(classes);
}

R.id.trophy 是一个 ImageView,如何根据从 achHelper.ROW_TROPHY 中提取的数据设置背景图像?

4

1 回答 1

3

simpleCursorAdapter 需要字符串,因此当您设置数据库时,您的 StringArray "from" 必须从列中获取 String 对象,achHelper.ROW_TROPHY它必须如下所示:

 private static final String TABLE_CREATE = "CREATE TABLE " here your other colums
                                            + ROW_TROPHY + " TEXT NOT NULL);";
 db.execSQL(TABLE_CREATE);

因此,当您进入数据库时​​,您必须将 TropyImage 的 ID(整数) R.drawable.yourTropyImage 的 ID 转换为字符串:

ContentValues cv = new ContentValues();
cv.put( your other columns, your other input);
cv.put(ROW_TROPHY, Integer.toString(R.drawable.yourTrophyImage));

return db.insert(DATABASE_TABLE, null, cv);

你的String[] from, int[] tosimpleCursorAdapter似乎是正确的。您只需要在列中有正确的 DataType 和 ID ROW_TROPY

于 2012-07-02T12:53:55.823 回答