我是一名A级学生,目前正在进行A Level计算机科学控制评估。我在安卓工作室工作,使用爪哇,XML和SQLite,我以前都没有使用过。我正在构建一个侦察管理器应用程序。
我目前正在显示活动详细信息,特别是受邀参加活动的每个侦察兵的姓名和部分,这将显示在 ListView 中。唯一的问题是,虽然数据库中有4名侦察兵被邀请参加此活动,但只显示3名 - 或者,显示的侦察兵太少。
应该指出的是,活动,邀请和侦察员有单独的表格。邀请表将参加活动的ID和参加活动的侦察员的ID匹配在一起 - 因此,在显示侦察兵的详细信息之前,我找到参加某个活动的所有邀请,然后是参加活动的个人侦察员。
下面是用于从数据库(从我的数据库Handler类)获取给定事件的邀请的代码:
public Cursor getEventInvites(int sessionid) {
String[] columns={COLUMN_INID + " AS " + BaseColumns._ID, COLUMN_SEID, COLUMN_SCID};
String selection=COLUMN_SEID + " =? ";
String[] selectionArgs={String.valueOf(sessionid)};
Cursor cursor=db.query(TABLE_INVITES, columns, selection, selectionArgs, null, null, null);
return cursor;
}
下面是用于在列表框中显示详细信息的代码:
ListView scoutslist = findViewById(R.id.listScouts);
scoutdetailslist=new ArrayList<String>();
scoutadapter=new ArrayAdapter<String>(context, android.R.layout.simple_list_item_multiple_choice, scoutdetailslist);
//ArrayList<int>
Cursor invites;
invites=DatabaseHandler.getEventInvites(sessionid);
invites.moveToFirst();
try {
while (invites.moveToNext()) {
int ScoutID = invites.getInt(invites.getColumnIndex(DatabaseHandler.COLUMN_SCID));
Cursor scout = DatabaseHandler.getScout(ScoutID);
String forename = scout.getString(scout.getColumnIndex(DatabaseHandler.COLUMN_FNAME));
String surname = scout.getString(scout.getColumnIndex(DatabaseHandler.COLUMN_LNAME));
String section = scout.getString(scout.getColumnIndex(DatabaseHandler.COLUMN_SECTION));
String ScoutBasicDetails = forename + " " + surname + ", " + section;
scoutdetailslist.add(ScoutBasicDetails);
}
} finally {
invites.close();
}
scoutslist.setAdapter(scoutadapter);
任何帮助将不胜感激 - 而且,我是新手,而且很累,所以如果我遗漏了重要的细节或不清楚,请不要犹豫,发表评论并要求我修改问题。
斯蒂芬大帝
相关分类