Android实现阅读进度记忆功能

所属分类: 软件编程 / Android 阅读数: 66
收藏 0 赞 0 分享

本文实例为大家分享了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);
  }

}

三步就完成了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

Android样式和主题之选择器的实例讲解

今天小编就为大家分享一篇关于Android样式和主题之选择器的实例讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

Android应用动态修改主题的方法示例

今天小编就为大家分享一篇关于Android应用动态修改主题的方法示例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

Flutter 网络请求框架封装详解

这篇文章主要介绍了Flutter 网络请求框架封装详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Flutter倒计时/计时器的实现代码

这篇文章主要介绍了Flutter倒计时/计时器的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Android使用google breakpad捕获分析native cash

这篇文章主要介绍了Android使用google breakpad捕获分析native cash 的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

详解Flutter WebView与JS互相调用简易指南

这篇文章主要介绍了详解Flutter WebView与JS互相调用简易指南,分为JS调用Flutter和Flutter调用JS,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Android开发实现ListView和adapter配合显示图片和文字列表功能示例

这篇文章主要介绍了Android开发实现ListView和adapter配合显示图片和文字列表功能,涉及Android使用ListView结合adapter适配器实现图文显示功能相关的布局、解析、权限控制等操作技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

Android文字基线Baseline算法的使用讲解

今天小编就为大家分享一篇关于Android文字基线Baseline算法的使用讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

Flutter自定义实现神奇动效的卡片切换视图的示例代码

这篇文章主要介绍了Flutter自定义实现神奇动效的卡片切换视图的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

Android实现自定义滑动刻度尺方法示例

这篇文章主要给大家介绍了关于Android实现自定义滑动刻度尺的相关资料,文中通过示例代码介绍的非常详细,对各位Android开发者们具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享
查看更多