2016-11-17 6 views
0

私はSharedPreferenceを使ってアクティビティ間のデータを保存しています(これは設定関連ではなく、ユーザーデータのみです)。xmlからSharedPreferenceを作成する

私はどこでも私のアプリ内から共有の好みからの読み取り/に書き込む処理するためにutilsクラスでこれらの静的メソッドを作成しました:

public static <T> void saveData(Context context, String key, T value, String typeOfValue) { 
     SharedPreferences sharedPreferences = context.getSharedPreferences("FILE", Context.MODE_PRIVATE); 
     SharedPreferences.Editor editor = sharedPreferences.edit(); 
     switch (typeOfValue) { 
      case ("String"): 
       editor.putString(key, (String) value); 
       break; 
      case ("int"): 
       editor.putInt(key, (Integer) value); 
       break; 
      case ("Boolean"): 
       editor.putBoolean(key, (Boolean) value); 
       break; 
      default: 
       break; 
     } 
     editor.commit(); 
    } 

    public static <T> T loadData(Context context, String key) { 
      SharedPreferences sharedPreferences = context.getSharedPreferences(FILE, Context.MODE_PRIVATE); 
      return (T) sharedPreferences.getAll().get(key); 
    } 

私はこれらの質問があります:私はこれを行う場合は

  1. を環境設定ファイル "FILE"はいつ作成されますか?アプリケーションがインストールされたとき、または最初のsaveメソッドまたはloadメソッドが呼び出されたときにのみ作成されますか?それはXMLですか?
  2. 私は何を確認する場合は
    • アプリケーションがインストールされている場合、「FILE」と呼ばれる共有設定ファイルが作成されます。
    • 恒久キーのリストを宣言してください(それ以上のキーは後で追加されません)。それらはすべてデフォルト値に設定されています。

どうすればよいですか? XMLからの共有設定を作成すると助けになると聞きましたが、アンドロイドAPIを読んだあと、このような共有設定はアンドロイドの「設定」のみのようです。

私は、あなたが「ちょっと」この

String username = prefs.getString("username_key", "DefaultUsername"); 

のようにデフォルト値を設定することができます。しかし、すべて私の読み取り方法は、一般的なものですので、私はこれを望んでいないことを知っています。また、ボンネットの下で何が起こるかわからないので、私はこれが好きではありません。デフォルト値が実際に設定ファイルに設定されているようには見えません。まだ値が設定されていない場合は、単にデフォルト値を返すかもしれません。

答えて

0

sharedPreference.xmlを表示できます。 Androidスタジオ - >ツール - > Android - > Androidデバイスモニターを使用します。 image

ファイルのパスは/data/data/<package_name>/shared_prefs です。ファイルが作成されたときにテストすることができます。

+0

ありがとうございますが、私はgenymotionを使用していますが、試しましたが、Androidデバイスマネージャーで決して接続できないので、実際にエミュレータに何があるのか​​わかりません... –

関連する問題