2016-10-18 22 views
0

現在3つの画面を持つアプリがあります。SharedPreferences Android

1は、6つのボタンを備えたメイン画面であり、2つのボタンは、他の2つの画面に行く意思があります。

これらの画面のうち1つはテーマです。クリックするとBGの色が白に変わる6つのレイアウトがあります。それはいいですが、私は6のうち、このユーザーの好みを保存し、さらにチック - タック - トゥの画像で使用する必要があります.....すべての6つのテーマはチック - タック - つま先の部分を変更する... thats my計画(*主にイメージビューイメージソースの変更... thats all)。

テーマスクリーンを選択して閉じるときはいつでも... 2番目のスクリーンセーバーと言えば...スクリーンやアプリを開くたびに、2番目に選択されたものが表示されます。したがって、値を変更してください。

私はsharedPreferencesを試しましたが、うまくいきませんでした。誰も私を少し助けてくれる?さらにどのテーマを選択したかに基づいてimageViewリソースを変更する方法は?そのためにSharedPreferences get()を使用しますか?

お手伝いがあれば回答してください。大変感謝しています。 ありがとう事前

+0

あなたは 'SharedPreferences'で試したことを見せてください。どのように値を保存するか、どのように取得するのか、取得した値をどのように使用しようとしましたか –

+0

共有環境設定で試したこと、 –

+0

あなたのSharedPreferencesコードを共有します –

答えて

3

に私は最近、SharedPreferencesのための例を書いた:

private static final String GLOBAL_PREFERENCES = "a.nice.identifier.for.your.preferences.goes.here"; 

public static void savePreferences(@NonNull Context context, String key, int value) { 
    SharedPreferences sharedPreferences = context.getSharedPreferences(GLOBAL_PREFERENCES, Context.MODE_PRIVATE); 
    SharedPreferences.Editor editor = sharedPreferences.edit(); 
    editor.putInt(key, value); 
    editor.apply(); 
} 

public static int loadPreferences(@NonNull Context context, String key, int defaultValue) { 
    SharedPreferences sharedPreferences = context.getSharedPreferences(GLOBAL_PREFERENCES, Context.MODE_PRIVATE); 
    return sharedPreferences.getInt(key, defaultValue); 
} 

これはSharedPreferencesの整数を保存してロードするための一例です。あなたができるユーザーがテーマを変更する(して、それを保存したい)とき、あなたの例では

これらのメソッド(および静的最後のメンバ変数)は、以下の例のためにUtilsと呼ばれるヘルパークラスの中に配置されることになりますUtils.savePreferences(context, "theme", 1);に電話してください。

ユーザーがアプリケーションに戻ると、int theme = Utils.loadPreferences(context, "theme", 0);を使用して選択したテーマ(デフォルトでは0)を返すことができます。

+0

「Utils」とは何ですか?ヘルパークラスを作成した場所はどこにも記載されていません。あなたが 'SharedPreferences'オブジェクトを再利用せずにこの未加工をやっているなら、あなたは[この回答](http://stackoverflow.com/a/12074219/940834)のようなものを直接行うこともできます – Doomsknight

+0

Utilsはちょうどヘルパークラス。 1つの値しか書いていない場合は、問題ではありません。 – Knossos

+0

上記のコード例を明確にします。 +1は機能します。 – Doomsknight

関連する問題