Android实现阅读进度记忆功能

发布时间:2020-02-14 发布网站:编程之家
编程之家收集整理的这篇文章主要介绍了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,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 defValue) {
    if (sp == null) {
      sp = context.getSharedPreferences(NAME,Context.MODE_PRIVATE);
    }
    return sp.getString(key,defValue);
  }


  //存Int值
  public static void putInt(Context context,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,int defValue) {
    if (sp == null) {
      sp = context.getSharedPreferences(NAME,Context.MODE_PRIVATE);
    }
    return sp.getInt(key,defValue);
  }

}

三步就完成了。

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

总结

以上是编程之家为你收集整理的Android实现阅读进度记忆功能全部内容,希望文章能够帮你解决Android实现阅读进度记忆功能所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入编程之家官方QQ群:1065694478
编程之家官方公众号

微信公众号搜索 “ 程序精选 ” ,选择关注!

微信公众号搜索 “ 程序精选 ”
精选程序员所需精品干货内容!