本文实例为大家分享了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);
}
}
三步就完成了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。