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

小编给大家分享一下Android怎么实现阅读进度记忆功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

成都创新互联专业为企业提供林口网站建设、林口做网站、林口网站设计、林口网站制作等企业网站建设、网页设计与制作、林口企业网站模板建站服务,10余年林口做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

具体内容如下

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

我用的控件是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);
  }

}

三步就完成了。

以上是“Android怎么实现阅读进度记忆功能”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


标题名称:Android怎么实现阅读进度记忆功能
本文链接:http://csdahua.cn/article/gsehss.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流