2012-01-05 7 views
0

私はアンドロイドに新しいです、私は多くを検索し、満足のいく答えを見つけることができませんでした。私が必要とするようにアンドロイドは設定と情報を保存します

1>言語、表示する項目の数として私のアプリケーションのためのいくつかの設定を保存することで、ディスプレイの/ etc、画像が表示されない... 私は最高の共有設定

を使用して行われていると思われ

2>インターネットから取得するデータの種類保存...ここ

は私の問題です:私は、キー、名前、タイプ、データ[] ...(とカテゴリオブジェクトに分割されたデータを持っている

data []は常に変化し、アプリケーションを終了しても保存されません)、(key、name、typeはプログラマによって定義された最終値です) 。

ユーザが読み込んでもらいたくないカテゴリ(約25)があるため、表示するカテゴリを選択して保存する必要があります。

共有環境設定を使用するとデータの複雑さのために役に立たないと思います。私はsqliteまたはxmlを使用することを考えていましたが、どちらが効率とメモリサイズを念頭に置いた最良の選択かはわかりません。

メモ:カテゴリ情報配列にグローバル変数を使用しています。これは、data []を2-3分ごとに自動的にリフレッシュする必要があり、すべてのアクティビティで使用できる必要があり、効率とメモリスペースが問題になるからです。 アドバイスありがとうございます、事前にありがとうございます。

答えて

1

1> SharedPreferencesは正しい選択

2です>あなたは複数の可能性

を持って

a)の内部ストレージを使用して、データを交換する場合(オブジェクトの単純化の理由のためのシリアライゼーション()、XMLを使用)または独自の形式を使用してください。

b)SQLiteは最速のソリューションです。しかし、あなたは私の選択となること


Bのためのより多くのプログラミングを行うため、DB-オブジェクト(静的またはシングルトンパターン)を作成し、すべてのデータベース・タスク

+0

はあなたに感謝。私が必要としているのは:アプリケーションを起動するとき、私はカテゴリーの読み込みフラグをチェックし、それに応じてデータを読み、表示します[]、カテゴリ設定アクティビティでtrue/falseに設定して保存します。他の変数は変更されていません。 – user173488

+0

から私が見つけたもの:シリアル化 - それは非常に遅いです、xmlは解析の問題が付属しています...私はsqliteを使用するためのあなたの提案と一緒に行くと思います - データは最高のフォーマットとスレッドセーフです。また、私は将来、ユーザーが選択したお気に入りのデータをデータベースに保存する必要があります。ありがとうございました。 – user173488

0

1)はい、SharedSettingsための機能を記述する必要がありあなたを助けるはずです。周りにはたくさんの情報がありますが、あなたが紛失した場合には返信してください。

2)私はすべてのカテゴリとブール値を持つテーブルを作成します。ユーザーが表示するかどうかを知ることができるところでは、 "表示"と言います。

もちろん、カテゴリのサイズと変更量によって異なります。それ以外の場合は、永久にデータベースを更新するためです。店舗での好みあなたの設定共有

+0

ありがとうございます。あなたはsqliteテーブルを使用してテーブルを意味するのですか?カテゴリのサイズについて:キーと名前は、showフラグと共に保存する必要があり、これらの値は変更されません。プログラマによって一度設定されますが、動的ではありません。 – user173488

0

ユーザー、

SharedPreferences sharedPreferences = this.applicationContext.getSharedPreferences(preferencesName, Context.MODE_PRIVATE); 


    //For saving the setting:  


     //for storing long 
       SharedPreferences.Editor editor = sharedPreferences.edit(); 
         editor.putLong(key, value); 
     //for storing string    editor.commit(); 
       SharedPreferences.Editor editor = sharedPreferences.edit(); 
         editor.putString(key, value); 
         editor.commit(); 
     //and similarly for int,float etc 


     //For Retrieving the string: 

      sharedPreferences.getLong(key, defaultValue); //for long value 
      sharedPreferences.getSting(key, defaultValue); //for string value 
関連する問題