0

整数とオブジェクトのペアを持つHas​​hMapがありますが、デバイスの電源をオフにしてからオンにすると、リストが消え、後でデータを取得できるようにする必要があります。そうしないと、HashMapが無意味になります。バンドルを試し、HashMapと私が入れているオブジェクトでSerializableを拡張しました。これを行う方法を知っている人はいますか?最善の方法はObjectOutputStreamだと思っていますが、その方法がわかりません。誰かが私にこのチュートリアル/例を教えてもらえますか、それとも簡単なものを教えてもらえますか?

とても有難い

4

5 に答える 5

4

デバイスの電源をオフにしてからオンにすると、リストは消えます

アプリケーションを終了または再起動すると、リストも消えます。そのためのデータベースを作成します。

こちらをご覧ください

于 2012-09-19T13:03:45.957 に答える
2

Java オブジェクト (シリアライズ可能なものであっても) は、実際にシリアライズしてデータを永続的に保存するための措置を講じない限り、プロセスが存続している間だけ存続します。これには、SQLite データベースや SharedPreferences など、いくつかのオプションがあります。このガイドをお読みください

于 2012-09-19T13:09:59.897 に答える
1

SharedPreferances次のコードでデータを保存できます。

    Map<Integer, Object> aMap = new HashMap<Integer, Object>();
    aMap.put(String.valueOf(1), object1);
    aMap.put(String.valueOf(2), object2);
    aMap.put(String.valueOf(3), object3);

    SharedPreferences keyValues = getSharedPreferences("Your_Shared_Prefs", Context.MODE_PRIVATE);
    SharedPreferences.Editor keyValuesEditor = keyValues.edit();

    for (Integer s : aMap.keySet()) {
        keyValuesEditor.putString(String.valueOf(s), toString(aMap.get(s)));
    }
    keyValuesEditor.commit();

toString()メソッドはそこから取得されます:オブジェクトを文字列にシリアル化する方法

次に、アプリケーションを再度開いた後、次のように呼び出します。

    SharedPreferences keyValues = getSharedPreferences("Your_Shared_Prefs", Context.MODE_PRIVATE);
    Map<Integer, Object> map = new HashMap<Integer, Object>();
    for (String key : keyValues.getAll().keySet()) {
        map.put(Integer.valueOf(key), fromString(keyValues.getString(key, null)));
    }
于 2012-09-19T13:22:30.350 に答える
0

サミール・マングロリヤが言ったように。Hashmap電話を再起動すると、のすべてのデータが失われます。SQLiteを使用してデータを保存することを検討してください。データベースの各列にIntegerとして保存します。Primary Key

于 2012-09-19T13:16:50.030 に答える
0

電話にデータを保存するには、コンテンツ プロバイダーが最適なオプションです。それらは、始めるのが最も簡単ではありません。ただし、単純なコンテンツ プロバイダーを実装する Android で提供されるサンプル Notes アプリケーションがあります。

http://developer.android.com/guide/topics/providers/content-providers.htmlをご覧ください

しかし、もっと重要なことは、この http://developer.android.com/guide/topics/providers/content-provider-creating.html メモ帳サンプル アプリケーションの詳細が記載されていることです。

または、この質問を参照 してくださいデバイスの再起動後も値を保持できるように、ハッシュマップを保存する方法は?

于 2012-09-19T13:08:10.063 に答える