使用ViewPager,默认预加载下一页。我的代码中初始化时第二页的数据把第一页的覆盖了,导致两页数据相同。当切换页面的时候,第一页被销毁时,再切换回来数据才显示正常。求指导,我实在搞不清楚问题出在哪里了。
public class RealPaperAdapter extends PagerAdapter {
private Context context;
private List<Analyze> paperList = new ArrayList<Analyze>();
private Analyze analyze;
private QuestionList m_ql;
private int itemNum;
public RealPaperAdapter(Context context, List<Analyze> paperList,
QuestionList m_ql) {
this.context = context;
this.paperList = paperList;
this.m_ql = m_ql;
}
@Override
public int getCount() {
return paperList.size();
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@SuppressLint("SetJavaScriptEnabled")
@Override
public Object instantiateItem(ViewGroup container, int position) {
analyze = paperList.get(position);
int qid = analyze.getQID();
itemNum = position;
boolean bStem = analyze.getStem();
PaperView view = new PaperView(context);
WebSettings topSettings = view.getTopWebView().getSettings();
WebSettings bottomSettings = view.getBottomWebView().getSettings();
topSettings.setJavaScriptEnabled(true);
bottomSettings.setJavaScriptEnabled(true);
view.getTopWebView().loadUrl(ConstValue.URL_LOCAL_QUESTION_DAY);
if (bStem) {
view.getBottomWebView().loadUrl(ConstValue.URL_LOCAL_QUESTION_DAY);
} else {
view.showTopView();
}
view.getTopWebView().setWebViewClient(new WebViewClient() {
private String mUrl;
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
mUrl = url;
view.loadUrl(url);
return true;
// return overrideUrlLoading(view, url);
}
@Override
public void onPageFinished(WebView view, String url) {
view.loadUrl("javascript:realqueanalyze('"
+ analyze.getAnalyze() + "', '"
+ m_ql.getQuestions()[itemNum].getUserAnswer() + "')");
super.onPageFinished(view, url);
}
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
if (!NetWorkHelper.isNetworkAvailable(context)) {
view.loadUrl(ConstValue.URL_ERR_DAY);
} else if (failingUrl.startsWith("file")) {
view.loadUrl(mUrl, URLConfigure.getInstance(context)
.getBasicHeader());
}
}
});
container.addView(view);
return view;
}