0

私はデータベースでスピナーを使用しなければならない小さなアプリを開発しています。使ってます

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

データベースからのデータを使用して動的スピナーを表示したいと思います。しかし、例外やエラーが発生しなかったとしても、データベースからデータを入力することはできません。

4

1 に答える 1

1

WHERE _id = ?

それはあなたの問題かもしれません。列がその文字と等しい行を探しています_id(通常、一意の長い値が含まれています)。あまり具体的でないクエリが必要だったと思います。それを調整してから、カーソル数をログに記録して、実際に何かが返されていることを確認してください。cursor.getCount();

于 2013-02-08T08:47:01.333 に答える