码农-虚无吞炎 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 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件