如何解决如何使用从微调器中选择的项目
我有一个旋转器。我用数据库表中的数据(一列)填充它。现在,当用户从微调器中选择一个项目时。我想要数据库中的一个函数,它返回所选项目的相应主键。在我的主要活动中,主键应该存储在一个变量中。我该怎么做。
这是我在主要活动中的代码:
if(spinner.getSelectedItem() != null){
spinner_text = (String) spinner.getSelectedItem();
try {
substation_number = myDB.spinnerResult(spinner_text);
} catch (NumberFormatException e) {
Toast.makeText(getApplicationContext(),"Please select an item",Toast.LENGTH_SHORT).show();
}
}
这是我在数据库中的函数:
public int spinnerResult(String item_name){
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery("Select substationNo from " + TABLE_NAME + " where item_name = ?",new String[]{item_name});
return Integer.parseInt(String.valueOf(cursor));
}
解决方法
您通过 rawQuery()
获得的游标最多应返回 1 行(如果 item_name
在表中是唯一的)和 1 列。
您必须使用 moveToFirst()
检查您传递的 item_name
是否存在于表中,然后从游标中提取 substationNo
的值:
public int spinnerResult(String item_name){
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery("Select substationNo from " + TABLE_NAME + " where item_name = ?",new String[]{item_name});
int result = 0; // you may change this
if (cursor.moveToFirst()) result = cursor.getInt(0);
cursor.close();
db.close();
return result;
}
如果您传递的 item_name
在表中不存在,则函数返回 0
,如果需要,您可以将其更改为 -1
,您可以检查它以验证 {{ 1}} 被发现。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。