繁体   English   中英

重新启动应用程序Android后,保存数据并使用它

[英]Save the data and using it after restarting the app Android

我正在创建一个简单的应用程序,用户可以在其中更改搜寻栏的值。 将默认值设置为0,将setMax设置为5。每次关闭并重新启动应用程序时,seekbar值均设置为0。如何使用和设置在关闭应用程序之前设置的上一个seekbar值。

这是我的活动课>

public class MainActivity extends Activity {

SeekBar s;
TextView v;
public int n;

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

    s=(SeekBar)findViewById(R.id.seekBar1);
    v=(TextView)findViewById(R.id.textView1);
    next=(Button)findViewById(R.id.button1);

    s.setProgress(n);
    v.setText(n+" ");

    s.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){

        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
            // TODO Auto-generated method stub
            n = progress;
            v.setText(n+" ");

        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub
            v.setText(n+" ");
        }

    });
  }
}

我尝试使用onSaveInstanceState和onRestoreInstanceState,但是无法还原回以前的状态。 请帮忙

提前致谢。

首先,仅当由于方向改变而发生销毁时,才触发onSaveInstance和onRestoreInstance方法,因此您不能为此目的使用该机制,为了在明确销毁活动之后存储先前的值,可以使用以下一种android提供的持久性机制。 SharedPreferences或SQLiteDB在销毁活动之前保存它们,并在活动开始时还原它们。

要获取最新值(如果有),必须在onCreate方法中添加以下代码:

private SharedPreferences prefs;
private int progress;

protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);        
 prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
 progress = prefs.getInt("myProgress", 0);

}

//要在活动销毁之前一直存储它,则必须在onPause中添加以下代码:

protected void onPause() {
  super.onPause();
  Editor editPrefs = prefs.edit();
  editPrefs.putInt("myProgress", newProgressValue);
  editPrefs.commit();

}

希望这可以帮助。

问候!

您可能需要查看《开发人员指南》中的“存储选项”。

具体来说,“ 共享首选项”似乎是一个不错的起点。

您可以尝试使用SQL数据库,即使关闭并重新打开该应用程序,该数据库也仍然可用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM