首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重装SharedPreferences

重装SharedPreferences
EN

Stack Overflow用户
提问于 2015-09-21 19:21:09
回答 1查看 1K关注 0票数 0

我对Android非常陌生,在SharedPreferences方面也有问题。我有一个主活动和一个设置活动。我希望能够在设置活动中更改SharedPreference (这里称为firstWaitTime),并在主活动中使用它。我可以在设置中设置新值,但在主活动中,我只在关闭并重新打开应用程序时才看到新值。

我想我需要一个OnPrefrenceChanged列表器,但我不知道如何实现.

主要的一个是这样的:

代码语言:javascript
复制
public class MainActivity extends ActionBarActivity {

    //Radio Button
    private int stufe;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        SharedPreferences settings = this.getSharedPreferences("settings", Context.MODE_PRIVATE);
        int firstWaitTime = settings.getInt("firstWaitTime", 12);
        int secondWaitTime = settings.getInt("secondWaitTime", 8);
        int thirdWaitTime = settings.getInt("thirdWaitTime", 6);

        //TEST
        final TextView test = (TextView) findViewById(R.id.test);
        test.setText("" + firstWaitTime);

}

设置活动如下所示:

代码语言:javascript
复制
 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_settings);

 final SharedPreferences settings = this.getSharedPreferences("settings", MODE_PRIVATE);

//BUTTON

        final EditText edit1 = (EditText) findViewById(R.id.edit1);
        Button save=(Button) findViewById(R.id.savebtn);

        save.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                //prefs = getSharedPreferences(prefName, MODE_PRIVATE);
                //SharedPreferences.Editor editor = prefs.edit();
                SharedPreferences.Editor editor = settings.edit();

                //---save the values in the EditText view to preferences---
                editor.putInt("firstWaitTime", Integer.parseInt(edit1.getText().toString()));

                //---saves the values---
                editor.commit();

                Toast.makeText(getBaseContext(), "Saved", Toast.LENGTH_SHORT).show();
            }
        });
}

实现这一目标的最佳途径是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-21 19:27:39

onCreate()不会被调用,因为安卓并没有扼杀这一活动。尝试将您的代码放在onResume()中。欲知更多信息,请阅读Android活动生命周期

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32702981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档