Android实现阅读进度记忆功能
本文实例为大家分享了Android控件WebView实现保存阅读进度的具体代码,供大家参考,具体内容如下
用户提了一个要求,要求保存他的阅读进度,然后在他下次阅读的时候可以继续阅读,然后动手实现了一下,是这样的。
我用的控件是WebView
publicclassWebViewClientEmbextendsWebViewClient{
//在WebView中而不是系统默认浏览器中显示页面
@Override
publicbooleanshouldOverrideUrlLoading(WebViewview,Stringurl){
view.loadUrl(url);
System.out.println("Url---------->"+url);
returntrue;
}
//页面载入前调用
@Override
publicvoidonPageStarted(WebViewview,Stringurl,Bitmapfavicon){
super.onPageStarted(view,url,favicon);
}
//页面载入完成后调用
@Override
publicvoidonPageFinished(WebViewwebView,Stringurl){
intposition=CacheUtils.getInt(Laws_DetailActivity.this,link,0);
webView.scrollTo(0,position);//webview加载完成后直接定位到上次访问的位置
mLoadingDialog.dismiss();
}
}
这中间,link是我的加载网址
@Override
publicvoidonPause(){
super.onPause();
if(webView!=null){
intscrollY=webView.getScrollY();
CacheUtils.putInt(this,link,scrollY);//保存访问的位置
}
}
最后贴出工具类
publicclassCacheUtils{
privatestaticfinalStringNAME="";
privatestaticSharedPreferencessp=null;
//存Strings
publicstaticvoidputString(Contextcontext,Stringkey,Stringvalue){
if(sp==null){
sp=context.getSharedPreferences(NAME,
Context.MODE_PRIVATE);
}
sp.edit().putString(key,value).commit();
}
//取String
publicstaticStringgetString(Contextcontext,Stringkey,StringdefValue){
if(sp==null){
sp=context.getSharedPreferences(NAME,
Context.MODE_PRIVATE);
}
returnsp.getString(key,defValue);
}
//存Int值
publicstaticvoidputInt(Contextcontext,Stringkey,intvalue){
if(sp==null){
sp=context.getSharedPreferences(NAME,
Context.MODE_PRIVATE);
}
sp.edit().putInt(key,value).commit();
}
//取int值
publicstaticintgetInt(Contextcontext,Stringkey,intdefValue){
if(sp==null){
sp=context.getSharedPreferences(NAME,
Context.MODE_PRIVATE);
}
returnsp.getInt(key,defValue);
}
}
三步就完成了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。