【发布时间】:2017-11-17 15:24:14
【问题描述】:
如何从数据库 (SQLite) 填充微调器内容
我有 POJO:类别,包含 id 和 name, 我已经有了这个表,它有一个函数可以像这样获取 ArrayList:
public List<SetcardCategory> getAllSetcardCategory()
{
List<SetcardCategory> setcardCategories = new ArrayList<SetcardCategory>();
String selectQuery = "SELECT * FROM " + TABLE_SETCARD_CATEGORIES;
SQLiteDatabase db = this.getReadableDatabase();
Cursor c = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (c.moveToFirst()) {
do {
SetcardCategory setcardCategory = new SetcardCategory();
setcardCategory.setId(c.getInt((c.getColumnIndex("id"))));
setcardCategory.setName(c.getString(c.getColumnIndex("name")));
// adding to tags list
setcardCategories.add(setcardCategory);
} while (c.moveToNext());
}
return setcardCategories;
}
然后在 Activity 我这样称呼它:
List<SetcardCategory> setcardCategories = db.getAllSetcardCategory();
ArrayAdapter<SetcardCategory> arrayAdapter = new ArrayAdapter<SetcardCategory>(
this, android.R.layout.simple_spinner_item, setcardCategories);
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner sItems = (Spinner) findViewById(R.id.setcardCategory);
sItems.setAdapter(arrayAdapter);
当我运行它时,它会加载这样的字符串:“schema.SetcardCategory@22293c98”和许多其他类似的值。
如何填充微调器以将 name 字段显示为标签,并将 id 字段显示为我们提取以保存到 DB 中的值?
【问题讨论】:
-
在 pojo 类中重写 tostring 方法并返回要在微调器中显示的值
-
您可以使用
SimpleCursorAdapter5 行代码完成此操作
标签: java android sqlite spinner