Android Studio:从微调器中选择项目后从SQLite数据库中检索相应的值

时间:2016-05-17 17:34:21

标签: android sqlite

我是Android Studio新手,目前正在处理我的第一个应用程序。

我有一个使用SQLite数据库中的数据填充的微调器。该数据库有3列,即" ID"," Ingredient_Name" (文字)和"碳水化合物_内容" (double) - 微调器显示Ingredient_Name列中的所有数据。

现在,如果用户从微调器中选择一个项目,我想检索/获取该选定项目的相应数据。例如,如果用户选择" Rice"从旋转器,我想得到水稻碳水化合物含量的价值。然后,这个(双)值将用于另一个数学方程式。

我从android hive中找到了以下代码,这与我想要做的类似,但是在网站中,这个函数从未在主活动中被调用过。 我的主要问题是如何调用它并将其应用于我的案例中?谢谢!

public Contact getContact(int id) {
    SQLiteDatabase db = this.getReadableDatabase();

    Cursor cursor = db.query(TABLE_CONTACTS, new String[] { KEY_ID,
            KEY_NAME, KEY_PH_NO }, KEY_ID + "=?",
            new String[] { String.valueOf(id) }, null, null, null, null);

    if (cursor != null)
        cursor.moveToFirst();

    Contact contact = new Contact(Integer.parseInt(cursor.getString(0)),
            cursor.getString(1), cursor.getString(2));

    return contact;
}

1 个答案:

答案 0 :(得分:0)

我建议不要复制和粘贴代码,而是先解构它并理解它。我会在这里帮助你一点。因此,在用户在微调器中选择了某些内容后,连接一个按钮以进行数据库调用。

为此你可以使用onClickListener。使用findViewById获取对按钮的引用,然后设置onClickListener。在onClickListener中,进行数据库调用,我会这样做:

Cursor cursor = db.query(TABLE_CONTACTS, new String[] { KEY_ID, KEY_NAME, KEY_PH_NO }, KEY_NAME + " = ?", new String[] { String.valueOf(spinner.getSelectedItem()) }, null, null, null);

所以你要使用" Rice"这个词。搜索数据库,因为微调器将返回单词" Rice"所以你想匹配那个。然后相应地更新您的视图。如果您在评论中有任何其他问题,请与我们联系。