viewPager使用时加载数据时显示IllegalStateException异常,解决不了。。。。
从newsPager中得到newsDetailTitles标题的详细内容,这是通过构造器传过来的。打印日志78行能打印,45行打印出来共size是12.但是程序出现了异常
java.lang.IllegalStateException:
The application's PagerAdapter changed the adapter's contents without calling PagerAdapter#notifyDataSetChanged。 从网上查询的结果是adapter中的数据改变了,却没有重新加载数据,需要在数据改变之后adapter.notifyDataSetChanged。但是找不到数据改变的地方。
今天太累了,这个bug找到答案时再写。
1 package com.atguigu.beijingnews2.pager.newsdetailpager; import android.app.Activity;
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView; import com.atguigu.beijingnews2.R;
import com.atguigu.beijingnews2.utils.LogUtils; import org.xutils.view.annotation.ViewInject;
import org.xutils.x; import java.util.ArrayList; /**
* Created by Administrator on 2016/2/18.
*/
public class NewsDetailPager {
private Activity activity;
@ViewInject(R.id.vp_news_detail_paper)
private ViewPager vp_news_detail_paper;
private ArrayList<String> newsDetailTitles=new ArrayList<>() ;
private PagerAdapter adapter = new PagerAdapter() {
@Override
public Object instantiateItem(ViewGroup container, int position) {
LogUtils.e("TAG");
// String title = newsDetailTitles.get(position);
// textView.setText(title);
container.addView(views.get(position));
return views.get(position);
} @Override
public void destroyItem(ViewGroup container, int position, Object object) {
LogUtils.e("TAG");
container.removeView((View) object);
} @Override
public int getCount() {
LogUtils.e("TAG" + newsDetailTitles.size()); return newsDetailTitles.size();
} @Override
public boolean isViewFromObject(View view, Object object) {
LogUtils.e("TAG");
return view == object;
}
};
private TextView textView;
ArrayList<View> views = new ArrayList<>();
public NewsDetailPager(Context context, ArrayList<String> newsDetailTitles ) {
activity = (Activity) context;
this.newsDetailTitles=newsDetailTitles;
// initView(); } public View initView() {
View view = View.inflate(activity, R.layout.news_detail_paper, null);
x.view().inject(this, view);
for (int i = 0; i < newsDetailTitles.size(); i++) {
TextView textView = new TextView(activity);
textView.setText(newsDetailTitles.get(i));
views.add(textView);
LogUtils.e("TAG");
}
// textView = new TextView(activity);
LogUtils.e("TAG");
vp_news_detail_paper.setAdapter(adapter);
return view;
}
}
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.atguigu.beijingnews2, PID: 1622
java.lang.IllegalStateException: The application's PagerAdapter changed the adapter's contents without calling PagerAdapter#notifyDataSetChanged! Expected adapter item count: 0, found: 4 Pager id: com.atguigu.beijingnews2:id/vp_news_pager Pager class: class com.atguigu.beijingnews2.view.NoScrollViewPager Problematic adapter: class com.atguigu.beijingnews2.pager.NewsPager$2
at android.support.v4.view.ViewPager.populate(ViewPager.java:999)
at android.support.v4.view.ViewPager.populate(ViewPager.java:951)
at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1473)
at android.view.View.measure(View.java:16497)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:847)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
at android.view.View.measure(View.java:16497)
at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1488)
at android.view.View.measure(View.java:16497)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:847)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
at android.view.View.measure(View.java:16497)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
at android.view.View.measure(View.java:16497)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
at android.view.View.measure(View.java:16497)
viewPager使用时加载数据时显示IllegalStateException异常,解决不了。。。。的更多相关文章
- 当vue 页面加载数据时显示 加载loading
参考:https://www.jianshu.com/p/104bbb01b222 Vue 页面加载数据之前增加 `loading` 动画 创建组件 1.新建 .vue 文件: src -> c ...
- jquery加载数据时显示loading加载动画特效
插件下载:http://www.htmleaf.com/jQuery/Layout-Interface/201505061788.html 插件使用: 使用该loading加载插件首先要引入jQuer ...
- 巧力避免ViewPager的预加载数据,Tablayout+Fragment+viewPager
问题描述 最近在进行一个项目的开发,其中使用到了Tablayout+Fragment+viewPager来搭建一个基本的框架,从而出现了设置数据适配器的时候,item的位置错乱问题.我打印log日志的 ...
- 解决easyui datagrid加载数据时,checkbox列没有根据checkbox的值来确定是否选中
背景: 昨天帮朋友做一个easyui datagrid的小实例时,才发现easyui datagrid的checkbox列,没有根据值为true或false来选中checkbox,当时感觉太让人失 ...
- Fullcalendar改版后发布到IIS或者tomcat里面前端加载数据不显示的问题
问题如题:Fullcalendar改版后发布到IIS或者tomcat里面前端加载数据不显示的问题 解决办法:通过火狐浏览器工具发现是时间格式不对的原因,需要将时间格式修改为:yyyy-MM--DD ...
- easyui datagrid 异步加载数据时滚动条有时会自动滚到最底部的问题
在使用easyui 的datagrid异步加载数据时发现滚动条有时会自动滚到最底部.经测试发现,如果加载数据前没有选中行则不会出现这个问题.这样我们可以在重新异步加载数据前取消选中行就可以避免这个问题 ...
- XE7 & FMX 那些年我们一起上过的控件:ListView 之 (3) 加载数据时如何显示自定义样式
本文介绍一下ListView下如何加载数据.及使用进度条反馈当前进度给用户. 注意: 原创作品,请尊重作者劳动成果,转载请注明出处!!!原文永久固定地址:http://www.cnblogs.com/ ...
- ListView用法及加载数据时的闪烁问题和加载数据过慢问题
ListView介绍及添加数据时的闪烁问题 1. ListView类 1.1 ListView常用的基本属性: (1)FullRowSelect:设置是否行选择模式.(默认为false) 提示 ...
- Easyui datagrid加载数据时默认全选的问题
问题描述: 最近使用 Easyui datagrid 展示数据,之前一直使用很正常,今天出现了一个怪异问题 加载数据后,只要点击选中列 ck 的任意行或多行,再刷新时整个datagrid的所有数据都 ...
随机推荐
- kvm-GT
REF: http://los-vmm.sc.intel.com/wiki/How-to-setup-kvmgthttp://xenvgt.sh.intel.com/image/bdw-h/ Host ...
- 警惕:利用Dropbox链接散播的恶意软件
趋势科技近期发现好几起利用热门文档代管服务Dropbox的垃圾邮件.邮件的内嵌链接会下载UPATRE恶意软件变种.UPATRE下面载恶意软件而恶名昭彰,当中包含ZBOT恶意软件.CryptoLocke ...
- javascript之函数节流
对于高频率的事件触发,为了优化页面性能,我们一般会对其做函数节流.比如: resize.keydow.scroll事件等.用户的频繁操作,会导致事件高频率的执行,这样会出现页面抖动啊.频繁调接口啊等问 ...
- setinterval
setInterval(function(){document.getElementsByTagName("li")[0].click()},1000);
- RDLC报表系列(四) 矩阵
继续接上一篇的内容,本文主要是讲矩阵的内容 用到的数据源如下: DataTable dt = new DataTable(); dt.Columns.Add("FiscalYear" ...
- 由chkconfig 引发的联想——怎么查看程序是否已经安装/成功安装
由chkconfig 引发的联想--怎么查看程序是否已经安装/成功安装 某天需要运行chkconfig,root登录依然找不到该命令. [root@localhost ~]# chkconfig ba ...
- (转)C# WinForm中 获得当前鼠标所在控件 或 将窗体中鼠标所在控件名显示在窗体标题上
原文地址:http://www.cnblogs.com/08shiyan/archive/2011/04/14/2015758.html /********************** * 课题:将窗 ...
- (转)对mysql explain讲的比较清楚的
转自:http://www.blogjava.net/persister/archive/2008/10/27/236813.html 在 explain的帮助下,您就知道什么时候该给表添加索引,以使 ...
- PHP学习笔记-数组(1)
1-1 数组定义 1.什么是数组? 所谓数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标.组 ...
- 重读LPTHW-Lesson15-17
1.引入sys模块,argv参数变量解包,可以多一种方式获取用户输入: # filename:argv_test.pyfrom sys import argv script,first,second ...