2012-01-09 20 views
1

私はいくつかのアクティビティでアプリケーションを作成しています。 SharedPreferencesは複数のアクティビティで読み込まれます。Android SharedPreferences同じ値に割り当てられたすべての変数

SharedPreferencesファイルの1つの変数を更新すると、そのファイル内のすべての変数が割り当てられた値になります。

これが発生する一般的な理由はありますか?そうでない場合は、コードを投稿することができます。

次のコードは、次のコードは、異なる活動に常駐VALUES(すべて大文字で何かが一意の整数の定数である)

public void LevelUp(int gameType) { 
    step++; 
    SharedPreferences settings = getSharedPreferences("Steps", 0); 
    SharedPreferences.Editor editor = settings.edit(); 
    switch (gameType) { 
     case NUMBERS_SPEED: editor.putInt("NUMBERS_SPEED", step); 
     case NUMBERS_BINARY: editor.putInt("NUMBERS_BINARY", step); 
     case NUMBERS_SPOKEN: editor.putInt("NUMBERS_SPOKEN", step); 
     case LISTS_WORDS:  editor.putInt("LISTS_WORDS",  step); 
     case LISTS_EVENTS: editor.putInt("LISTS_EVENTS", step); 
     case SHAPES_FACES: editor.putInt("SHAPES_FACES", step); 
     case SHAPES_ABSTRACT: editor.putInt("SHAPES_ABSTRACT", step); 
     case CARDS_SPEED:  editor.putInt("CARDS_SPEED",  step); 
    } 
    editor.commit();   
} 

public int getStep(int gameType) { 
    SharedPreferences settings = getSharedPreferences("Steps", 0); 
    switch (gameType) { 
     case NUMBERS_SPEED: return settings.getInt("NUMBERS_SPEED", 1); 
     case NUMBERS_BINARY: return settings.getInt("NUMBERS_BINARY", 1); 
     case NUMBERS_SPOKEN: return settings.getInt("NUMBERS_SPOKEN", 1); 
     case LISTS_WORDS:  return settings.getInt("LISTS_WORDS", 1); 
     case LISTS_EVENTS: return settings.getInt("LISTS_EVENTS", 1); 
     case SHAPES_FACES: return settings.getInt("SHAPES_FACES", 1); 
     case SHAPES_ABSTRACT: return settings.getInt("SHAPES_ABSTRACT", 1); 
     case CARDS_SPEED:  return settings.getInt("CARDS_SPEED", 1); 
     default: return -1; 
    } 
} 

を読み書きするために使用されます:

SharedPreferences settings = getSharedPreferences("Steps", 0); 
step = settings.getInt("NUMBERS_SPOKEN", 1); 
+2

これは決して見られませんでした。コードは本当にここで役立つだろう。 –

+0

あなたはコード – nandeesh

答えて

2

あなたはあなたのケースステートメントの間に休憩が必要です

switch (gameType) { 
    case NUMBERS_SPEED: editor.putInt("NUMBERS_SPEED", step); 
    break; 
    case NUMBERS_BINARY: editor.putInt("NUMBERS_BINARY", step); 
    break; 

それ以外の場合は、すべてのcas eステートメントは、すべてがその値を割り当てられている理由です。

+0

を郵送することができますか?ありがとう! – Allen

+0

これは過去のことではありません。 – zode64

関連する問題