数据未显示从数据库到Spinner

时间:2013-02-08 08:41:43

标签: android database spinner

我正在开发一个小应用程序,我必须使用带有数据库的微调器。我正在使用

   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;
}

我想用数据库中的数据显示动态微调器。但是我无法从数据库中填充数据,即使我没有得到异常或错误。

1 个答案:

答案 0 :(得分:1)

WHERE _id = ?

这可能是你的问题。它正在查找_id列等于该字符的行(通常它包含唯一的长值)。我认为你想要一个不太具体的查询。尝试调整它,然后记录光标计数以验证实际返回的内容:cursor.getCount();