2015-05-06 46 views
-1

我已经将共享偏好保存为高分,我想要在主菜单上显示高分,并让它保持在那里,即使关闭了应用并重新打开它。setText保存的偏好

我已经得到它的工作,以便它在单击加载高分时将textview更改为高分但我希望它自动执行。

//saving the highscore 
public static final String PREFS_NAME = "MyPrefsFile"; 
    static SharedPreferences settings; 
    static SharedPreferences.Editor editor; 

// When 'back' button is pressed save the highscore to settings 

      editor = settings.edit();// Create a new editor 
      editor.putInt("highscore", HighScore); // Storing integer  
      editor.commit(); 

// When 'Show' button is pressed 
    public void showPreferences(View v) { 
     int highscore = GameActivity.settings.getInt("highscore", 0); 
     Toast.makeText(MainMenu.this, 
        "Your Highscore is: " + highscore, 
       Toast.LENGTH_LONG).show(); 
     tvScore.setText(Integer.toString(highscore)); 

    } 


//current on create 

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.game_start); 
     tvScore= (TextView) findViewById(R.id.tvGuessGame); 


    } 
+0

只需在'onCreate()'中加载它。你在哪里初始化'settings'? –

回答

1

onCreate(),定义TextView后,设定你SharedPreferences得到了价值的文本。

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.game_start); 
    tvScore= (TextView) findViewById(R.id.tvGuessGame); 
    SharedPreferences settings = getSharedPreferences(....); // 
    int highscore = settings.getInt("highscore", 0); 
    tvScore.setText(""+highscore); 
} 
+0

当我运行与该代码的应用程序,我不幸的是游戏开始已停止。 – TheKaiser4

+0

您必须先初始化设置。我编辑了代码 – RafaelC

+0

以'GameActivity'中的方式初始化'settings'。 – RafaelC