Android实现阅读进度记忆功能 Android实现阅读进度记忆功能

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

Android实现阅读进度记忆功能 Android实现阅读进度记忆功能

JustingWang_1   2021-03-29 我要评论
想了解Android实现阅读进度记忆功能的相关内容吗,JustingWang_1在本文为您仔细讲解Android实现阅读进度记忆功能的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:Android阅读进度记忆功能,Android保存阅读进度,WebView保存阅读进度,下面大家一起来学习吧。

用户提了一个要求,要求保存他的阅读进度,然后在他下次阅读的时候可以继续阅读,然后动手实现了一下,是这样的。

我用的控件是WebView

public class WebViewClientEmb extends WebViewClient {

    // 在WebView中而不是系统默认浏览器中显示页面
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
      view.loadUrl(url);
      System.out.println("Url---------->"+url);
      return true;
    }

    // 页面载入前调用
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon) {
      super.onPageStarted(view, url, favicon);

    }

    // 页面载入完成后调用
    @Override
    public void onPageFinished(WebView webView, String url) {

      int position = CacheUtils.getInt(Laws_DetailActivity.this,link, 0);
      webView.scrollTo(0, position);//webview加载完成后直接定位到上次访问的位置
      mLoadingDialog.dismiss();
    }
  }

这中间,link是我的加载网址

@Override
  public void onPause() {
    super.onPause();

    if (webView != null) {
      int scrollY = webView.getScrollY();
      CacheUtils.putInt(this, link, scrollY);//保存访问的位置
    }
  }

最后贴出工具类

public class CacheUtils {
  private static final String NAME = "";
  private static SharedPreferences sp = null;


  // 存Strings
  public static void putString(Context context, String key, String value) {
    if (sp == null) {
      sp = context.getSharedPreferences(NAME,
          Context.MODE_PRIVATE);
    }
    sp.edit().putString(key, value).commit();
  }


  // 取String
  public static String getString(Context context, String key, String defValue) {
    if (sp == null) {
      sp = context.getSharedPreferences(NAME,
          Context.MODE_PRIVATE);
    }
    return sp.getString(key, defValue);
  }


  //存Int值
  public static void putInt(Context context, String key, int value) {
    if (sp == null) {
      sp = context.getSharedPreferences(NAME,
          Context.MODE_PRIVATE);
    }
    sp.edit().putInt(key, value).commit();
  }

  //取int值
  public static int getInt(Context context, String key, int defValue) {
    if (sp == null) {
      sp = context.getSharedPreferences(NAME,
          Context.MODE_PRIVATE);
    }
    return sp.getInt(key, defValue);
  }

}

三步就完成了。

猜您喜欢

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们