0

我希望有人可以帮助我找出为什么以下代码不适用于我。我有一种从数据库表中获取所有名称的方法,我使用 List 来获取它们。这是我获取它们的代码

/*fetch all names to spinner*/
public List<String> readAllNames()
{
    List<String> names = new ArrayList<String>();
    String[] allNames = {SQLiteHelper.Names};
    String selection = SQLiteHelper.Names + " LIKE ?";
    String[] selectionArgs = null;
    cursor = database.query(SQLiteHelper.LECTURE_NAME, allNames, selection, selectionArgs, null, null, null);

    cursor.moveToFirst();
    while(!cursor.isAfterLast())
    {
        names.add(cursor.getString(cursor.getColumnIndex(SQLiteHelper.Names)));
        cursor.moveToNext();
    }
    cursor.close();
    return names;
}

这是我调用该方法并填充我的微调器的代码

datasource.openToRead();
    List<String> names = datasource.readAllNames();
    ArrayAdapter<String> spin = new ArrayAdapter<String>(Home.this, android.R.layout.simple_spinner_item, names);
    spin.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    ins_jadname.setAdapter(spin);
    datasource.close();

问题是微调器是空的,每个人都知道我的代码有什么问题吗?我不想使用简单的光标适配器,因为我认为更简单。不管怎么说,还是要谢谢你。

4

1 回答 1

1

如果要从数据库中获取所有名称,则不需要LIKE在方法中使用选择子句readAllNames(),只需从目标sqlite表的所有行中获取名称列中的数据即可。代码将是:

cursor = database.query(SQLiteHelper.LECTURE_NAME, allNames, null, null, null, null, null);
于 2013-04-28T17:33:31.063 回答