如何将两个表中的数据插入到listView中?

时间:2015-07-28 05:57:05

标签: android listview left-join android-cursoradapter

我正在使用游标适配器从数据库中获取数据。这两个表与LEFT JOIN连接在一起。 我想从第一个表中获取数据并在第一个listViewItem中显示它,而另一个listViewItems必须从第二个表中填充。

所有这一切都取得了成功,但我之所以成为下一个原因:

e.g。 如果两个表中的每一个都包含1行,则listView将只显示1个列表项,但不会显示2个!如果第二个表包含2行,则listView将显示2个listItems,但不会显示3个,第二个listVIewItem将是来自第二个表的第二行的信息......

我怀疑我的问题是这两个表已加入,但我不知道如何解决这个问题。 请帮忙。

EDIT1:

@Override
    public void onCreate(SQLiteDatabase db) {
        sDb = db;
        final String SQL_CREATE_USERS_INFO_TABLE = "CREATE TABLE " + UsersInfoEntry.TABLE_NAME +
                " (" + UsersInfoEntry.USER_ID + " INTEGER, " +
                UsersInfoEntry.EMAIL + " TEXT, " +
                UsersInfoEntry.PHONE + " TEXT, " +
                UsersInfoEntry.FIRST_NAME + " TEXT, " +
                UsersInfoEntry.LAST_NAME + " TEXT, " +
                UsersInfoEntry.SEX + " INTEGER, " +
                UsersInfoEntry.DATE_OF_BIRTH + " TEXT, " +
                " FOREIGN KEY (" + UsersInfoEntry.USER_ID + ") REFERENCES " +
                UsersInfoEntry.TABLE_NAME + " (" + UsersInfoEntry.USER_ID +" ), " +
                " UNIQUE ( " + UsersInfoEntry.USER_ID + " ) ON CONFLICT REPLACE );";

final String SQL_CREATE_TABLE_NEWS_TAPE = "CREATE TABLE " + NewsTapeEntry.TABLE_NAME +
                " (" + NewsTapeEntry.NEWS_ID + " INTEGER PRIMARY KEY, " +
                NewsTapeEntry.USER_ID + " INTEGER NOT NULL, " +
                NewsTapeEntry.CONTENT + " TEXT, " +
                NewsTapeEntry.CREATED_AT + " TEXT, " +

                " FOREIGN KEY (" + NewsTapeEntry.NEWS_ID + ") REFERENCES " +
                NewsTapeEntry.TABLE_NAME + " (" + NewsTapeEntry.NEWS_ID + "), " +
                " UNIQUE (" + NewsTapeEntry.NEWS_ID + ") ON CONFLICT REPLACE);";
}

static {
        sProfileWithNewsBuilder = new SQLiteQueryBuilder();
        sProfileWithNewsBuilder.setTables(
                UsersInfoEntry.TABLE_NAME + " LEFT JOIN " +
                        NewsTapeEntry.TABLE_NAME + " ON " +
                        UsersInfoEntry.TABLE_NAME + "." + UsersInfoEntry.USER_ID + " = " +
                        NewsTapeEntry.TABLE_NAME + "." + NewsTapeEntry.USER_ID
}

0 个答案:

没有答案