gpt4 book ai didi

java - 保存数据并在重启 Android 应用程序后使用它

转载 作者:行者123 更新时间:2023-11-29 21:36:18 29 4
gpt4 key购买 nike

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

这是我的 Activity 类>

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 方法仅在由于方向改变而发生销毁时触发,因此您不能为此目的使用此机制,为了在显式销毁 Activity 后存储以前的值,您可以使用android提供的持久化机制之一。 SharedPreferences 或 SQLiteDB 在销毁 Activity 之前保存它们,并在 Activity 启动时恢复。

要获取最新值,您必须在 onCreate 方法中添加以下代码:

private SharedPreferences prefs;
private int progress;

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

//要在 Activity 被销毁之前一直存储它,您必须在 onPause 中添加此代码:

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

希望这对您有所帮助。

问候!

关于java - 保存数据并在重启 Android 应用程序后使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18341269/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com