java - 如何保存用户上次阅读的页码

标签 java android sharedpreferences androidpdfviewer

我正在构建一个 Android 应用程序,它通过 https://github.com/barteksc/AndroidPdfViewer 显示特定的 pdf有很多页面,现在我只是实现一种从用户最后打开的页面重新打开 pdf 的方法。

我使用 SharedPreferences 来存储当前页面,然后在重新加载应用程序后,应用程序将重新打开用户离开的位置的 pdf。

这是我用于存储和检索数据的共享首选项方法

private void storepreferences () {
    PDFView pdfView = findViewById(R.id.pdfView);
    savedpage=pdfView.getCurrentPage();
    SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", MODE_PRIVATE);
    SharedPreferences.Editor editor = pref.edit();
    editor.putInt("key_name2", savedpage);
    editor.apply();
}
private void getpreferences () {
    SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", MODE_PRIVATE);
    pageNumber = pref.getInt("key_name2", 0);             // getting Integer
}

然后我使用 onCreate

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    storepreferences();
    getpreferences();

另外,为了进行测试,我正在显示

TextView txt = findViewById(R.id.textView2);
txt.setText(String.valueOf(pageNumber));

但是我仍然得到默认值,我做错了什么有人可以告诉我吗?

最佳答案

在 StorePreference 中,首先尝试放置此代码。

editor.commit()

然后,

editor.apply().

关于java - 如何保存用户上次阅读的页码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56848432/

相关文章:

java - 在 Vista 32 位和 Win 7 64 位中访问 %ProgramFiles(x86)% 的统一方式

android - 谷歌钱包与 phonegap 集成

android - 使用倾听来了解偏好变化

android - 从共享首选项打开/关闭 Toast?

java - 测量 session 属性对象的大小

java - Gradle IDEA 项目语言级别问题

java - Amazon aws 中不允许针对此资源使用指定的方法

java - 两个选项卡之间的 float 操作按钮

android - 在执行另一个 Observable 之前等待一个 Observable 完成?

android - 共享首选项不读取按钮状态