listView.getChildAt(i)时java.lang.NullPointerException

BaseAdapter返回的是当前屏幕所能显示Item条数的组件,所以通过listView.getChildAt(i);

返回的是当前屏幕所能显示的组件,不能通过listView.getChildAt(i)方法获取除当前屏幕所能显示组件以外的其它组件。所以下面的方法是错误的:

for (int i = 0; i < listView.getCount(); i++)
{
         CheckBox checkBox = (CheckBox)listView.getChildAt(i); //试图通过此方法返回ListView所有的Item中的组件,但是是错误的。
}

上面的做法会出现如下异常:

查看源代码可知:

此时通过listView.getChildAt(i);获得的对象应该是null,null对象是没有属性和方法的所以会出现空指针异常。

正确做法:

list.setOnItemClickListener(new OnItemClickListener() {
                            @Override
                            public voidonItemClick(AdapterView<?> parent, View view,
                                               int position, longid) {
                                     // TODO Auto-generated method stub
                                     CheckBoxcheckBox=(CheckBox) view.findViewById(R.id.cbSelect);
                                     checkBox.toggle();
                                     if ( checkBox.isChecked()) {
                                               // 添加该列表项的电话号码
                                               sendList.add(numList.get(position));
                                               sendName.add(nameList.get(position));
                                     }else {
                                               //从群发列表中移除电话号及姓名
                                               sendList.remove(numList.get(position));
                                               sendName.remove(nameList.get(position));
                                     }
                            }
                   });

同样是为了获得用于所选择的Item,这个方法则选择了当用户单击了某个Item时通过回调OnItemClickListener,获取单击的Item中的组件(也就是适配器public View getView(int position, View convertView,ViewGroupparent)所返回的组件),通过此组件找到它的子组件。然后对子组件进行相应的操作。

时间: 2024-10-27 05:50:19

listView.getChildAt(i)时java.lang.NullPointerException的相关文章

Tomcat 启动时 java.lang.NullPointerException

今天工程启动时一直报错 java.lang.NullPointerException at org.apache.struts.action.ActionServlet.parseModuleConfigFile(ActionServlet.java:1003) at org.apache.struts.action.ActionServlet.initModuleConfig(ActionServlet.java:955) ... 后来发现时spring的web.xml中配置了一个不存在的st

structs2中,启动Tomcat时异常:严重: Exception starting filter struts2 java.lang.NullPointerException

structs2中,已搭建好structs2开发环境,程序无任何问题.但是,部署好项目之后,启动Tomcat时Console报错抛出异常: 严重: Exception starting filter struts2 java.lang.NullPointerException 如下图所示: 出现这个错误的原因是:这是struts-2.1.6版本的一个BUG,配置文件中设置了开发者模式,即structs.xml中包含了<constant name="struts.devMode"

Maven打包时出现“Show Console View”错误弹出框,错误详情为“An internal error has occurred. java.lang.NullPointerException”的解决方法

今天为项目打包时出现了下面的错误提示: 打开Details里面写的是“An internal error has occurred. java.lang.NullPointerException”.在网上搜索了一下,找到了解决方法,特此记录一下. 解决方法: 1.关闭eclipse等开发环境: 2.找到对应工程所在工作空间的配置文件.metadata,按照下面路径:*\.metadata\.plugins\org.eclipse.core.runtime\.settings,把settings文

项目启动时出现Exception in thread &quot;HouseKeeper&quot; java.lang.NullPointerException

解决方案: 首先建立一个servlet类: package cn.ydc.framework.util; import java.io.IOException; import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; i

分析java.lang.NullPointerException thrown in RelativeLayout measure()

典型重现环境 机型: Sony Ericsson Android version: 2.3.4 StackTrace: E/AndroidRuntime( 3579): FATAL EXCEPTION: main E/AndroidRuntime( 3579): java.lang.NullPointerException E/AndroidRuntime( 3579): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java

在Servlet使用getServletContext()获取ServletContext对象出现java.lang.NullPointerException(空指针)异常的解决办法

今天遇到了一个在servlet的service方法中获取ServletContext对象出现java.lang.NullPointerException(空指针)异常,代码如下: 1 //获取ServletContext对象 2 ServletContext servletContext = this.getServletContext(); 这个问题很奇怪,也是第一次遇到,因为以前在servlet的doGet/doPost方法中要获取ServletContext对象时都是这样写的,也没有出现过

一般报java.lang.NullPointerException的原因有以下几种

一般报java.lang.NullPointerException的原因有以下几种: ·字符串变量未初始化: ·接口类型的对象没有用具体的类初始化,比如: List lt; 会报错 List lt = new ArrayList(); 则不会报错了 ·当一个对象的值为空时,你没有判断为空的情况. 你可以试着把下面的代码前加一行代码: if(rb!=null); ................... String类型的对象可以做如下判断 if(rb!==null&&!""

web 环境项目(intellj部署的tomcat) 重启时报 Exception in thread &quot;HouseKeeper&quot; java.lang.NullPointerException (转)

Exception in thread "HouseKeeper" java.lang.NullPointerException at org.logicalcobwebs.proxool.HouseKeeperController.getHouseKeeperToRun(HouseKeeperController.java:52) at org.logicalcobwebs.proxool.HouseKeeperThread.run(HouseKeeperThread.java:33

Mac (适用于Win).新建Android项目.java.lang.NullPointerException

参考: 1.code.google.com - 18楼的回答(Mac) / Windows用户参考29楼的回答 2.How To Set $JAVA_HOME Environment Variable On Mac OS X 3.http://hsj69106.blog.51cto.com/1017401/595598 环境: Mac OS X Yosemite jdk1.7.0_71 Eclipse Luna (4.4.1) 报错信息: Errors occurred during the b