Android-SharedPreferences简单使用

这是用简单数据库SharedPreferences,来保存PDF文件阅读记录读到当前页,简单好用,当然,小型数据储存都可以用它,例如登陆信息等

private static final int REQUEST_EXTERNAL_STORAGE = 1;
    private static String[] PERMISSIONS_STORAGE = {
            Manifest.permission.READ_EXTERNAL_STORAGE,
            Manifest.permission.WRITE_EXTERNAL_STORAGE};
    String filename = "";
    private PDFView pdfView;
    private TextView pageTv;
    private TextView pageTv1;
    private int myPage = 0;

    public static void verifyStoragePermissions(Activity activity) {
        // Check if we have write permission
        int permission = ActivityCompat.checkSelfPermission(activity,
                Manifest.permission.WRITE_EXTERNAL_STORAGE);
        if (permission != PackageManager.PERMISSION_GRANTED) {
            // We don't have permission so prompt the user
            ActivityCompat.requestPermissions(activity, PERMISSIONS_STORAGE,
                    REQUEST_EXTERNAL_STORAGE);
        }
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_pdflook);

        Bundle bundle = this.getIntent().getExtras();
        filename = bundle.getString("file");

        SharedPreferences pref = getSharedPreferences("PageLog", MODE_PRIVATE);
        myPage = pref.getInt(filename, 0);//第二个参数为默认值

        pdfView = (PDFView) findViewById(R.id.pdfView);
        pageTv = (TextView) findViewById(R.id.pageTv);
        pageTv1 = (TextView) findViewById(R.id.pageTv1);

        Context context = PDFLookActivity.this;
        String path = Environment.getExternalStorageDirectory().getPath()+"/"+context.getExternalCacheDir().getPath();
        System.out.println("????"+path);

        File file = new File(path + "/" + filename + ".pdf");

        lookFile(file);

    }

    public void lookFile(File file) {
        verifyStoragePermissions(PDFLookActivity.this);
        pdfView.useBestQuality(true);

        pdfView.fromFile(file)
                .swipeHorizontal(false)
                .enableAntialiasing(true)
                .defaultPage(myPage)
                .onLoad(new OnLoadCompleteListener() {
                    @Override
                    public void loadComplete(int nbPages) {
                        pageTv.setText(nbPages + "");
                        pageTv1.setText((myPage+1) + "/");
                    }
                })
                .onPageChange(new OnPageChangeListener() {

                    @Override
                    public void onPageChanged(int page, int pageCount) {
                        myPage = page;

                        pageTv1.setText(page+1 + "/");

                    }
                })
                .load();
    }

    public void SavePdfPage(String filename, int page) {

        SharedPreferences preferences = getSharedPreferences("PageLog", MODE_PRIVATE);
        SharedPreferences.Editor editor = preferences.edit();
        editor.putInt(filename, page);
        editor.commit();


    }


    @Override
    protected void onPause() {
        super.onPause();
        SavePdfPage(filename, myPage);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值