离开活动后保存prgoress栏的状态



我正在尝试制作一个进度条,在那里我可以增加/重置值,到目前为止我已经做到了,但我希望能够在离开应用程序后以某种方式保存我停止的状态,我需要进度条的百分比保持不变,即使我退出了它,我读过一些关于简历方法和共享偏好的文章,但我真的不知道如何做到这一点,也不知道如何将其应用到我自己的代码中,任何帮助都将不胜感激,这是我的活动代码:

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.SeekBar;
import me.itangqi.waveloadingview.WaveLoadingView;
public class MainActivity extends AppCompatActivity {
WaveLoadingView waveLoadingView;
SeekBar seekBar;
Button increase,restart;
private int prog = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
seekBar=findViewById(R.id.seekbar);
waveLoadingView=findViewById(R.id.waveloading);
waveLoadingView.setProgressValue(0);
increase=findViewById(R.id.increase);
restart=findViewById(R.id.restart);
increase.setOnClickListener(v -> {
if(prog<=100){
prog+=10;
updateProgressBar();
}
if(prog<50){
waveLoadingView.setBottomTitle(String.format("%d%%",prog)+"you're drinking too little");
waveLoadingView.setCenterTitle("");
waveLoadingView.setTopTitle("");
}else if(prog<80){
waveLoadingView.setBottomTitle("");
waveLoadingView.setCenterTitle(String.format("%d%%",prog)+"You Are Almost There!");
waveLoadingView.setTopTitle("");
}else{
waveLoadingView.setBottomTitle("");
waveLoadingView.setCenterTitle("");
waveLoadingView.setTopTitle(String.format("%d%%",prog)+"rn You've Made It!");
}
if(prog==110){
waveLoadingView.setProgressValue(0);
}
});
restart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
waveLoadingView.setProgressValue(0);
waveLoadingView.setBottomTitle("");
waveLoadingView.setCenterTitle("");
waveLoadingView.setTopTitle("");
prog=0;
}
});

}
private void updateProgressBar() {
waveLoadingView.setProgressValue(prog);

}
}

使用共享首选项文件来保存值,并且您可以在重新打开应用程序时读取它。

private void updateProgressBar(({waveLoadingView.setProgressValue(prog(;getSharedPreferences("命名您的文件",MODE_PRIVATE(。edit((。putInt("progress",prog(。apply((;}

OnResumeint prog=getSharedPreferences("nameyourfile",MODE_PRIVATE(.getInt("progress",yourdefaultvalueprogress(;updateProgressBar(prog(;

最新更新