给ViewPager设置adapter出现空指针异常 解决

问题描述:

TopNewsAdapter topNewsAdapter = new TopNewsAdapter();
System.out.println("11111111" + topNewsAdapter == null);// 返回false,表明topNewsAdapter 不为空
System.out.println("11111111" + mViewPager == null);// 返回false,表明mViewPager 不为空
mViewPager.setAdapter(topNewsAdapter);// 此行出现空指针异常

异常信息如下

ERROR/AndroidRuntime(6058): java.lang.NullPointerException
at com.lidroid.xutils.http.HttpHandler.onProgressUpdate(HttpHandler.java:218)
at com.lidroid.xutils.task.PriorityAsyncTask$InternalHandler.handleMessage(PriorityAsyncTask.java:385)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)

经过检查发现,

我的ViewPager控件是通过第三方开源框架XUtils的注入方式初始化的,而在初始化的时候在ViewUtils.inject(this, view);里误将第一个参数传入getApplicationContext()

注意:使用ViewUtils.inject(this, view);第一个参数必须传入当前类(this)

时间: 2024-12-21 22:28:15

给ViewPager设置adapter出现空指针异常 解决的相关文章

ViewPager的Adapter中视图重用

ViewPager的PagerAdapter不像ListView/GridView的BaseAdapter,它是没有内部视图重用机制的,也就是说我先inflate出来一个,然后调用destroyItem后,这个视图就被抛弃了,如果需要更多的视图,则需要再次inflate.如果ViewPager中的所有视图基本相同,就存在内存的浪费了.这里使用一个非常简单的方法实现视图的重用: List<View> mViewList = new ArrayList<View>(); public

Android ListView 第一次设置Adapter时候getView调用多次

之前遇到这个奇怪现象,记录一下: 使用Listview并设置Adapter时, 会回调多次getView,比如我有4个items,按理说getView应该是调用一次(打出4个log),结果回调有4次(4*4个log). 原因: Listview的layout_height 为自适应:wrap_content,这个情况下,listview没办法确定用多少item的view来填充它自己,这迫使listview多次测量它的子元素. 解决: [html] view plaincopy android:l

Myeclipse下JSP打开报空指针异常解决方法。

Myeclipse下JSP打开报空指针异常解决方法 一.运行JSP文件就出错 静态的JSP页面访问时候正常,只要是牵涉到数据库的页面就出错,出错见下图. 出现这种情况让我调试了一天,各种断点,各种改代码,改数据库连接等等都试过都没有解决…… 二.解决方法 不经意间运行的时候选择了安装的tomcat 运行,一下就出来了!!!!! 把之前的改动都恢复到原来出错的时候,发现也可以正常运行,我去,,,,,忙活了大半天原来代码没有问题. >>>>>>>>>>

部署设置问题(一)的解决

Nginx遇到的部署问题-->应该是permission deny 查看了 /etc/nginx/nginx.conf 首行 user 然后将其设置为root就好了 不知道会否有安全问题 123.127.3.37 - - [03/Aug/2014:06:07:44 +0800] "GET /static/blog/js/bootstrap.js HTTP/1.1" 403 198 "http://182.92.99.8/xadmin/" "Mozil

Win7/Win2008下IIS配置Asp站点启用父路径的设置方法(已解决)

在Win7/Win2008下IIS配置Asp站点启用父路径的设置方法与win2003下不同,看看下图就知道了! Win7/Win2008下IIS配置Asp站点启用父路径的设置方法(已解决)

[转]通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题

转:http://blog.csdn.net/zhengwish/article/details/51602059 通过设置nginx的client_max_body_size解决nginx+php上传大文件的问题: 用nginx来做webserver的时,上传大文件时需要特别注意client_max_body_size这个参数,否则会中断在nginx的请求中,在php中是无法记录到访问的. 一般上传大文件流程: 首先修改php.ini文件: 参数 设置 说明 file_uploads on 是

Android错误之setAdapter(adapter)空指针nullPointer 解决办法

在设置adapter时,会经常遇到如下错误: 空指针错误 如果setAdapter报空指针,那么可用如下语句调试,找出到底哪里产生空指针 hisList = (ListView) findViewById(R.id.oillist);                if(hisList==null)                {                        Log.d("debug","hislist null");             

【android】解决Viewpager设置高度为wrap_content无效的方法

今天发现设置viewpager高度为wrap_content时并没作用.stackoverflow给出了解决方式,就是自己定义viewpager,重写onMesure()方法: public class WrapContentHeightViewPager extends ViewPager { /** * Constructor * * @param context the context */ public WrapContentHeightViewPager(Context context

android viewpager change adapter ---在使用viewpager设置新的adapter的时候发现页面还是显示旧的adapter中的值

有一个需求是当用户选择navigationview中的某一项时,右边的viewpager需要动态切换不同的adapter 发现直接setAdapter没有任何反应,加载的数据还是旧的数据 折腾了半天只需要将 FragmentPagerAdapter 换成 FragmentStatePagerAdapter就好了具体百度两者区别,有时间我写个总结出来大概的理解: FragmentPagerAdapter会缓存多个数据,适合viewpager中的数据不会经常变化 FragmentStatePager