我的应用中有2个Android数据库。为了举个例子,假设数据库#1被称为JOBS并具有以下列:
"Jobs Primary Key" - "Job Title" - "Job Description"
数据库#2被称为PEOPLE并具有以下列:
"People Primary Key" - "First Name" - "Last Name" - "Jobs ID Key"
(是的,从数据库的角度来看,我知道这些不是最好的设计,这只是为了帮助我为问题画一幅画。)
在ListView中,我想显示“名字” - “姓氏” - “职位”栏目(数据库#1中的1列,数据库#2中的2列)。使用SimpleCursorAdapter,有可能以某种方式实现这一目标吗?
如果我不使用SimpleCursorAdapter,我能想到的唯一方法是使用ArrayAdapter,我使用StringBuilder将3列连接在一起,并填充ListView,但我想知道如果有更好的方法来实现这一点。
答案 0 :(得分:0)
是的,这是可能的 - 假设您在一个数据库中表示两个表,而不是两个单独的数据库。
您只需要将您的数据库查询到join两个表中的信息。
例如,像这样的东西(完全未经测试):
String[] columns = { "first_name", "last_name", "title" };
SQLiteDatabase db = mDbOpenHelper.getReadableDatabase();
Cursor c = db.query("person LEFT OUTER JOIN job ON person.job_id = job.id", columns, null, null, null, null, null);
然后您可以像往常一样将Cursor
传递给Adapter
。
答案 1 :(得分:0)
我似乎无法发表评论,但如果你想让没有工作的人也出现,你会想要使用LEFT OUTER JOIN而不是JOIN(在Christopher的回答中)。