0

SQLite データベースからテーブルのすべての行を取得するデータベース ヘルパー クラスがあります。メイン アクティビティの onCreate で、そのメソッドを呼び出して、ListView にそのデータを入力しています。

ネットワークから情報を取得し、データベースに行を挿入する別のアクティビティがあります。その後、finish() を呼び出し、メイン アクティビティに戻ります。

返されたときに、挿入された行が ListView に表示されていません。デバッグから、データベース ヘルパー メソッドから返されていないようです。

アプリを閉じて再起動すると、行が表示されます。画面の向きを変えると表示されます。

これが私のデータベースヘルパーメソッドです:

public List<Object> getAllObjects() {

        List<Object> objects = new ArrayList<Object>();

        Cursor cursor = database.query(SQLiteHelper.TABLE_OBJECT,
                allColumns, null, null, null, null, null);

        cursor.moveToFirst();
        while (!cursor.isAfterLast()) {
            Object object = cursorToObject(cursor);
            objects.add(object);
            cursor.moveToNext();
        }

        cursor.close();
        return objects;
}
4

1 に答える 1

0

メインActivityは新しく作成されたものではなく、古いインスタンスに戻ります。あなたの場合、メソッドではなくonResumemainのメソッドに更新コードを入れてください。ActivityonCreate

コードが実行されるタイミングの詳細については、Activityライフサイクルを参照してください。

于 2013-08-24T17:34:44.317 に答える