我正在开发一个小应用程序,我必须使用带有数据库的微调器。我正在使用
spinner.setOnItemSelectedListener(this);
loadSpinnerData();
我的loadSpinnerData()位于
之下 private void loadSpinnerData() {
// database handler
AndroidContext.setContext(this);
sqlitedatabase_obj = DatabaseHelper.getInstance().getDb();
// Spinner Drop down elements
DatabaseHelper db = new DatabaseHelper(getApplicationContext());
List<String> lables = db.getAllLabels();
// Creating adapter for spinner
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, lables);
// Drop down layout style - list view with radio button
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// attaching data adapter to spinner
spinner.setAdapter(dataAdapter);
}
getAllLabels在DatabaseHelper类中定义
public List<String> getAllLabels(){
List<String> labels = new ArrayList<String>();
// Select All Query
String selectQuery = "SELECT _id, product_name FROM list_create WHERE _id = ?";
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
labels.add(cursor.getString(1));
} while (cursor.moveToNext());
}
// closing connection
cursor.close();
db.close();
// returning lables
return labels;
}
我想用数据库中的数据显示动态微调器。但是我无法从数据库中填充数据,即使我没有得到异常或错误。
答案 0 :(得分:1)
WHERE _id = ?
这可能是你的问题。它正在查找_id
列等于该字符的行(通常它包含唯一的长值)。我认为你想要一个不太具体的查询。尝试调整它,然后记录光标计数以验证实际返回的内容:cursor.getCount();