gpt4 book ai didi

java - 将数据从 Cursor 绑定(bind)到 Spinner Android

转载 作者:搜寻专家 更新时间:2023-10-30 22:19:01 24 4
gpt4 key购买 nike

我正在尝试在 Android 对话框中填充 Spinner。当用户单击一个按钮时,会弹出一个对话框,然后我从 XML 文件加载布局。现在我正在尝试从 SQL 查询填充该 Spinner。我到处搜索,无法弄清楚问题是什么。我可以遍历 Cursor 并将每个值添加到 ArrayAdapter,然后将其用作微调器的列表,但这不包含来自数据库的 _id。我在使用 SimpleCursorAdapter 之前已经完成了此操作,我什至完全复制并粘贴了我的旧代码,但它仍然无法正常工作。任何帮助将不胜感激。

我的对话代码:

private void displayNewInteractionDialog() {
final Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.mm_new_dialog);
dialog.setTitle(R.string.mm_new_dialog_title);
dialog.setCancelable(true);

final Spinner spinner = (Spinner) dialog.findViewById(R.id.mm_spinner);

DatabaseInterface db = new DatabaseInterface(this);
db.open();

Cursor c = db.getNames();

SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_spinner_item,
c,
new String[] {DatabaseInterface.KEY_ID, DatabaseInterface.KEY_NAME},
new int[] {android.R.id.text1});

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);

c.close();
db.close();

dialog.show();
}

这是在我的 DatabaseInterface 类中返回 Cursor 的代码:

public Cursor getNames() {
return db.query(DATABASE_TABLE_4, new String[] {DatabaseInterface.KEY_ID, DatabaseInterface.KEY_NAME}, null, null, null, null, null);
}

我知道这会起作用,我只是明显遗漏了一些东西。我知道我可以使用上面提到的 ArrayAdapter 中的名称列表加载微调器,还可以使用查询中的 ID 填充一个数组,当用户选择一个项目时,我可以从 ID 数组中获取相应的项目...但我知道 SimpleCursorAdapter 会起作用,但我似乎无法弄清楚,而且我不会放弃,直到我哈哈。在此先感谢您的帮助。

最佳答案

好吧,看起来我很笨哈哈...出于某种原因,可能只是尝试了很多东西然后忘记删除我添加的部分。我刚刚删除了 c.close(); 现在一切都很好。我记得在我试图解决问题时添加了这一点,我一定是在其他地方解决了问题然后没有意识到,因为这条线仍然在那里。由于除了将 Cursor 传递给函数外,我实际上并没有对 Cursor 做任何事情,因此不需要关闭它。无论如何一切都很好,我知道这将是愚蠢的事情。像往常一样。

关于java - 将数据从 Cursor 绑定(bind)到 Spinner Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6891567/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com