Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 保存我的进度条的当前状态_Android_Sharedpreferences - Fatal编程技术网

Android 保存我的进度条的当前状态

Android 保存我的进度条的当前状态,android,sharedpreferences,Android,Sharedpreferences,我正在尝试将该值保存在ProgressBar中,因此如果我关闭应用程序(终止它)并再次运行它,则会再次显示相同的值。我使用SharedReferences尝试了这个方法,但仍然无法保存,我不知道如何解决它。我在互联网上查找了所有我能找到的东西,但它总是非常简单,比如“如何将entertext保存为txt/xml”,但这不是我想要的 protected void onPause(){ super.onPause(); fuelBar = (ProgressBar) findView

我正在尝试将该值保存在ProgressBar中,因此如果我关闭应用程序(终止它)并再次运行它,则会再次显示相同的值。我使用SharedReferences尝试了这个方法,但仍然无法保存,我不知道如何解决它。我在互联网上查找了所有我能找到的东西,但它总是非常简单,比如“如何将entertext保存为txt/xml”,但这不是我想要的

protected void onPause(){
    super.onPause();
    fuelBar = (ProgressBar) findViewById(R.id.fuelProgressBar);
    SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE);
    incFuel = sharedPref.getInt(FUELBAR, fuelBar.getProgress());
    fuelBar.setProgress(incFuel);
}

public void onResume(){
    super.onResume();
    SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPref.edit();
    editor.putInt(FUELBAR, fuelBar.getProgress());
    editor.commit();
}

public void onStop(){
    super.onStop();
    fuelBar = (ProgressBar) findViewById(R.id.fuelProgressBar);
    SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE);
    incFuel = sharedPref.getInt(FUELBAR, fuelBar.getProgress());
    fuelBar.setProgress(incFuel);
}
在onCreate中,我还声明了这些变量

SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
在我的主要活动中

int incFuel = 0;
final String FUELBAR = "fuelBar";

SharedPreferences sharedPref;
SharedPreferences.Editor editor;

我真的一点也不知道我遗漏了什么,非常感谢您的帮助。

我可以看到一些问题

  • 首先,不需要您的
    onStop()
    ,因为
    onPause
    onResume
    就足够了

  • 您的
    onPause
    onResume
    处于相反状态。(活动加载后调用onResume,活动关闭时调用onPause)

  • 您还需要使用加载的值设置进度

  • 下面的代码应该为您指出正确的方向

    protected void onPause(){
        super.onPause();
        SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sharedPref.edit();
        editor.putInt(FUELBAR, fuelBar.getProgress());
        editor.commit();
    
    }
    
    public void onResume(){
        super.onResume(); 
        fuelBar = (ProgressBar) findViewById(R.id.fuelProgressBar);
        SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE);
        incFuel = sharedPref.getInt(FUELBAR, 0);
        fuelBar.setProgress(incFuel);
    }
    
    public void onStop(){
        super.onStop();
    }
    

    我只能看到对SharedReference对象的put调用。你是否调用过“get”?我编辑了代码,请再看一次。gr8 thx的解释它真的很有帮助,程序现在运行得很好。