我希望有人可以帮我找出以下代码无法解决的原因。我有一个从数据库表中获取所有名称的方法,我使用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();
问题是旋转器是空的,大家都知道我的代码有什么问题吗?我不想使用简单的游标适配器,因为我认为更简单。 不管怎样,谢谢。
答案 0 :(得分:1)
如果要从数据库中获取所有名称,则无需使用LIKE
方法中的readAllNames()
选择子句,只需从所有名称列中获取数据目标sqlite表的行。代码是:
cursor = database.query(SQLiteHelper.LECTURE_NAME, allNames, null, null, null, null, null);