【问题标题】:setText to a saved preference将文本设置为已保存的首选项
【发布时间】:2015-05-06 22:21:54
【问题描述】:

我已将高分保存到共享首选项中,我想在主菜单上显示高分,即使您关闭应用程序并重新打开它,它也会保留在那里。

我已经让它工作了,所以当你点击加载高分时它会将文本视图更改为高分,但我希望它自动执行。

//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);


    }

【问题讨论】:

  • 只需将其加载到onCreate()。你在哪里初始化settings

标签: java android sharedpreferences textview


【解决方案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);
}

【讨论】:

  • 当我使用该代码运行应用程序时,不幸的是,游戏开始已停止。
  • 您必须先初始化设置。我编辑了代码
  • 初始化 settings 的方式与在 GameActivity 中的相同。
  • SharedPreferences 设置 = PreferenceManager.getDefaultSharedPreferences(this);
  • 什么是回溯? (logcat 说什么?)
猜你喜欢
  • 2018-05-28
  • 1970-01-01
  • 2023-03-08
  • 2014-12-01
  • 2016-06-06
  • 2020-04-25
  • 1970-01-01
  • 2011-04-30
  • 1970-01-01
相关资源
最近更新 更多