如何使用从微调器中选择的项目
How to use item selected from spinner
我有一个旋转器。我用数据库 table 中的(一列)数据填充它。现在,当用户 select 来自微调器的项目时。我想要数据库中的一个函数,它 returns 对应 selected 项的主键。在我的 main activity 中,主键应该存储在一个变量中。我该怎么做。
这是我在主程序中的代码 activity:
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()
获得的游标应该 return 最多 1 行(如果 item_name
在 table 中是唯一的)和 1 列。
如果你传递的item_name
存在于table中,你必须检查moveToFirst()
,然后从游标中提取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
不存在于 table 函数 returns 0
中,您可以根据需要更改为 -1
您可以检查它以验证是否找到 item_name
。
我有一个旋转器。我用数据库 table 中的(一列)数据填充它。现在,当用户 select 来自微调器的项目时。我想要数据库中的一个函数,它 returns 对应 selected 项的主键。在我的 main activity 中,主键应该存储在一个变量中。我该怎么做。
这是我在主程序中的代码 activity:
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()
获得的游标应该 return 最多 1 行(如果 item_name
在 table 中是唯一的)和 1 列。
如果你传递的item_name
存在于table中,你必须检查moveToFirst()
,然后从游标中提取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
不存在于 table 函数 returns 0
中,您可以根据需要更改为 -1
您可以检查它以验证是否找到 item_name
。