我正在尝试更新 SQLite 数据库中的信息。我的 getter 读取的信息是正确的,但是每当我去更新记录中的信息时,即联赛名称、基础得分等。我被告知数组的大小为 0。
我可以在调试中看到我正在调用正确的记录 ID,并且从数据库中提取的信息是正确的。这向我确认记录确实是正确的。
我可以在调试中看到信息是正确的,并且变量正在存储对记录所做的更改。
看不出来我做错了什么。我在这个网站上浏览了几个不同的帖子,包括这个。什么导致 java.lang.ArrayIndexOutOfBoundsException 以及如何防止它?
我似乎找不到任何可以帮助我解决这个问题的东西。有人可以帮助我吗,我已经在下面发布了我的代码。
我在进入活动时获取记录的代码
public void getLeagueProfile(int position) {
SQLiteOpenHelper database = new DatabaseHelper(this);
SQLiteDatabase db = database.getReadableDatabase();
Cursor viewLeagueProfile = db.query(League.TABLE_NAME, new String[]{League.COLUMN_ID, League.COLUMN_NAME, League.COLUMN_BASE_SCORE, League.COLUMN_BASE_SCORE_PERCENTAGE, League.COLUMN_WINS, League.COLUMN_LOSSES, League.COLUMN_TIMESTAMP}, League.COLUMN_ID + "=?", new String[]{String.valueOf(position)}, null, null, null, null);
if (viewLeagueProfile.moveToFirst()) {
//Prepare League Object
league = new League(viewLeagueProfile.getInt(viewLeagueProfile.getColumnIndex(League.COLUMN_ID)), ln = viewLeagueProfile.getString(viewLeagueProfile.getColumnIndex(League.COLUMN_NAME)), bs = viewLeagueProfile.getString(viewLeagueProfile.getColumnIndex(League.COLUMN_BASE_SCORE)), bsp = viewLeagueProfile.getString(viewLeagueProfile.getColumnIndex(League.COLUMN_BASE_SCORE_PERCENTAGE)), lw = viewLeagueProfile.getString(viewLeagueProfile.getColumnIndex(League.COLUMN_WINS)), ll = viewLeagueProfile.getString(viewLeagueProfile.getColumnIndex(League.COLUMN_LOSSES)), viewLeagueProfile.getString(viewLeagueProfile.getColumnIndex(League.COLUMN_TIMESTAMP)));
Log.e("values : ", ln + ", " + bs + ", " + bsp + ", " + lw + ", " + ll);
}
}
相关分类