【发布时间】:2014-01-20 04:11:44
【问题描述】:
我正在寻找有关如何让微调器显示多个项目的帮助,但是,从 SQLite 数据库获取数据。
我已经能够从数据库中获取数据并将其放入带有一个项目的微调器中。为此,我将数据库中的一列拉入 ArrayList,然后将 ArrayList 添加到 Array 适配器,如下所示,这是我当前的代码:
spinner = (Spinner) view.findViewById(R.id.Spinner);
ArrayAdapter<String> catAdapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_item, ArrayListNames);
catAdapter.setDropDownViewResource(R.layout.spinner_item);
spinner.setAdapter(catAdapter);
然而,我需要的是微调器为每行显示两个项目。现在我正在从数据库中提取一个名为“名称”的列。我希望能够同时显示“年龄”列。
所以微调器看起来像这样:
Item 1: John
33
Item 2: Dave
24
然后用户可以从微调器中选择 John 或 Dave。我只是希望能够在每一行中显示不止一点的信息。对我来说,问题是它从数据库进入 ArrayList 然后进入微调器的适配器。
有谁知道我怎样才能为 Age 多出一行?
非常感谢您的帮助,谢谢!
编辑:我现在如何获取数据。
ArrayList<String> ArrayListNames = new ArrayList<String>();
Cursor c = db.rawQuery("SELECT * FROM table_one", null);
if (c.moveToFirst()) {
do {
ArrayListNames.add(c.getString(c.getColumnIndex("name")));
ArrayListNames.add(c.getString(c.getColumnIndex("age")));
}
while (c.moveToNext());
}
c.close();
【问题讨论】:
-
所以你想在你的微调器中显示姓名+年龄?
-
是的。每个项目的名称 + 年龄。
-
有什么问题?您可以从
ArrayListNames的列表项 0 到末尾进行循环,并在每一步将年龄与名称连接起来。 -
如果我理解正确,这就是我现在正在做的事情。但是每个名字和年龄都在不同的项目中。所以微调器让用户从姓名或年龄中进行选择。我将更新我的问题,向您展示如何使用光标将数据放入 ArrayList。
-
我仍然很困惑,
John 33或类似的工作是否适合您,或者您希望John和33在两条不同的线路上但被视为一个项目?
标签: android sqlite arraylist spinner