首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在我的历史记录片段中打开与Pdf文件完全相同的页面?

如何在我的历史记录片段中打开与Pdf文件完全相同的页面?
EN

Stack Overflow用户
提问于 2021-04-09 22:44:45
回答 1查看 86关注 0票数 0

我正在android studio中开发一个Pdf阅读器Android应用程序,但我不知道如何在历史片段中打开与我的Pdf文件完全相同的页面。我已经使用了Viewpager2,它包含三个独立的标签(文档,历史,收藏)对于我的Fragments.Whenever,我点击我的文档片段中的Pdf文件,它被添加到历史片段pdf列表中,但问题是当我在历史片段中打开pdf文件时,它会打开我的pdf文件的第一页。

下面是我的ViewPdf.java的代码:

代码语言:javascript
复制
public class ViewPdf extends AppCompatActivity {
    public static PDFView pdfView;
   
    static int pagenumber;
    TextView textView;
    BottomNavigationView bottomNavigationView;
    SharedPreferences mprefs;
    SharedPreferences mprefsk;
    SharedPreferences sharedPreference;
    SharedPreferences.Editor editor;


 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_view_pdf);
        pdfView = findViewById(R.id.pdfView);
        pdfView.setVisibility(View.VISIBLE);
        loadData();
        textView = (TextView) findViewById(R.id.pagenumber);
   

pdfView.fromFile(DocumentsFragment.pdf.get(getIntent().getIntExtra("Position", -1)))
                        .enableAnnotationRendering(true)
                        .defaultPage(pagenumber)
                        .swipeHorizontal(true)
                        // .scrollHandle(new DefaultScrollHandle(ViewPdf.this))
                        .nightMode(true)
                        .fitEachPage(true)
                        .onPageChange(new OnPageChangeListener() {
                            @Override
                            public void onPageChanged(int page, int pageCount) {
                                pagenumber = page;
                                textView.setText(String.valueOf(pdfView.getCurrentPage() + 1) + "/" + pdfView.getPageCount());
                            }
                        })
                        .pageSnap(true) // snap pages to screen boundaries
                        .pageFling(true)
                        .autoSpacing(false)
                        .spacing(12)
                        .enableAntialiasing(true)
                        .pageFitPolicy(FitPolicy.BOTH)
                        .load();


 public void saveData() {

        pagenumber = pdfView.getCurrentPage();
        sharedPreference = getPreferences(MODE_PRIVATE);
        editor = sharedPreference.edit();
        editor.putInt("page", pagenumber);
        editor.apply();

    }


public void loadData() {
        SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
        pagenumber = sharedPreferences.getInt("page", MODE_PRIVATE);


    }

这是我的ViewHistoryPdf.java:

代码语言:javascript
复制
     public class ViewHistoryPdf extends AppCompatActivity {
    PDFView pdfView;
   int pagenumber;
    TextView textView;
    BottomNavigationView bottomNavigationView;
    SharedPreferences mprefs;
    SharedPreferences mprefsk;
    SharedPreferences sharedPreference;
    SharedPreferences.Editor editor;
     @Override
 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_view_pdf);
        pdfView = findViewById(R.id.pdfView);
        //recyclerView.setVisibility(View.GONE);

        pdfView.setVisibility(View.VISIBLE);

        loadData();
     textView = (TextView) findViewById(R.id.pagenumber);

 pdfView.fromFile(HistoryFragment.pdfHistory.get(getIntent().getIntExtra("History", -1)))
                    .enableAnnotationRendering(true)
                    .defaultPage(pagenumber)
                    .swipeHorizontal(true)
                    // .scrollHandle(new DefaultScrollHandle(ViewPdf.this))
                    .nightMode(true)
                    .fitEachPage(true)
                    .onPageChange(new OnPageChangeListener() {
                        @Override
                        public void onPageChanged(int page, int pageCount) {
                           pagenumber = page;
                            textView.setText(String.valueOf(pdfView.getCurrentPage() + 1) + "/" + pdfView.getPageCount());
                        }
                    })
                    .pageSnap(true) // snap pages to screen boundaries
                    .pageFling(true)
                    .autoSpacing(false)
                    .spacing(12)
                    .enableAntialiasing(true)
                    .pageFitPolicy(FitPolicy.BOTH)
                    .load();



  public void saveData() {
pagenumber=pdfView.getCurrentPage();
sharedPreference = getPreferences(MODE_PRIVATE);
editor = sharedPreference.edit();
editor.putInt("page", pagenumber);
editor.apply();

}
  public void loadData() {
    SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
    pagenumber = sharedPreferences.getInt("page", MODE_PRIVATE);
}
EN

回答 1

Stack Overflow用户

发布于 2021-04-10 01:27:03

假设您的saveData()loadData()正常工作(我不知道这些方法是在哪里调用的)。您可以拨打:

代码语言:javascript
复制
pdfView.jumpTo(pagenumber)

请记住,pagenumber 应该有正确的页码

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67023247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档