微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

离开活动后保存进度条的状态

如何解决离开活动后保存进度条的状态

我正在尝试制作一个进度条,我可以在其中增加/重置值,到目前为止我已经这样做了,但是我希望能够以某种方式保存离开应用程序后离开的状态,我需要进度条的百分比保持不变,即使我退出它,我已经阅读了一些关于恢复方法和共享首选项的内容,但我真的不知道如何去做并将其应用于我自己的代码,任何帮助都会非常感谢,这是我的活动代码

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)+"\r\n 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("nameyourfile",MODE_PRIVATE)。编辑()。 putInt("progress',prog). apply() ; }

在恢复 int prog = getSharedPreferences("nameyourfile",MODE_PRIVATE).getInt("progress',yourdefaultvalueprogress); updateProgressBar(prog) ;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。