2011-01-12 6 views
10

私はアンドロイドアプリでシリアル化が必要な基本機能を持っています。ユーザーはArrayListにいくつかの値を追加し、この小さなオプションのためにデータベースを使用しないようにシリアル化したいと思うし、シリアル化する方法を学ぶのも便利だと思われるので(私は初心者です)。とにかく、ユーザーがarraylistに何かを保存し、プログラムがシャットダウンすると、プログラムが再び起動し、ユーザーは保存されたデータを見ることができます。これをどのように実装できますか?コードスニペットや役に立つリンクを提供できますか?androidでArrayListをシリアライズする方法

ありがとうございます!

+1

これはほぼ同じである必要があります。http://stackoverflow.com/questions/3588932/problem-serializing-and-deserializing-arraylist、そこからSDカードに書き込む必要があります。 – Xorlev

+0

シリアル化した後は、正確に何かを保存したいのですか?オプションには、Preference、Db(あなたが拒否したもの)、Directly to Fileシステムが含まれています。 – xandy

+0

最も簡単なことは、SDCard上のファイルシステムにシリアル化することです。 – chubbsondubs

答えて

12

カスタムBeanクラスによってこれを行うと、あなたはそれのArrayList<E>を作成するときに今ではその にSerializableを実装することができますそれはクラスですSerializable.

例:

Class dataBean implements Serializable 
{ 
    public String name; 
} 

ArrayList<dataBean> dataBeanArrayList = new ArrayList(); 

したがってdataBeanArrayListSerializableになりました。これをIntentに渡すこともできます。

+0

ありがとう@Megha! –

0

flexjsonを使用してデータをファイルにシリアル化することをお勧めします。それから、そのライブラリを使ってそれを読むことができます。これには、ストリームを異なるバージョンのオブジェクトに戻すことができる直列化よりもいくつかの利点があります。 ObjectInputStreamを使用すると、非常に注意深くなければなりません。ここで

http://flexjson.sourceforge.net

それを行う方法をブログ記事です:

http://wrongnotes.blogspot.com/2010/09/flexjson-meet-android.html

+0

JSONにインターネット接続が必要ないのですか?私は可能なユーザーからそれを要求しません。 – madcoderz

+2

いいえJSONはXMLのようなデータの単なるテキスト形式です。あなたはインターネット接続なしでそれを使用することができます。あなたのアプリがファイルシステムに書き込むことを許可する必要があります。 – chubbsondubs

関連する問題