码农-虚无吞炎 2015-12-22 06:37 采纳率: 10%
浏览 2367
已结题

Android中ViewPager初始化时加载数据相同的问题,急

使用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;
    }
  • 写回答

2条回答 默认 最新

报告相同问题?

悬赏问题

  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用