当前位置: 代码迷 >> Android >> Android添加按钮OnClickListener,运作时出现NullPointerExceptiion,程序闪退
  详细解决方案

Android添加按钮OnClickListener,运作时出现NullPointerExceptiion,程序闪退

热度:77   发布时间:2016-04-28 05:16:39.0
Android添加按钮OnClickListener,运行时出现NullPointerExceptiion,程序闪退
本人Android新手,刚学没几天.望多多指教,我用的是ADT最新版
新建Android项目中只有一个按钮,在向该按钮添加OnClickListener事件监听器,并执行时,
提示:
threadid=1: thread exiting with uncaught exception (group=0x4209a898)
找到原因是:
Caused by: java.lang.NullPointerException
指向错误行是添加点击事件的那句话(下方代码第二行),以下是添加事件的代码

    Button btn = (Button)findViewById(R.id.button1);
    btn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View arg0) {

            }
        });

注:包检查过了没有导错,同样的代码,在用老师给的旧版环境试验后没有问题!但是旧版本的ADT不能识别我的手机,用虚拟机又慢的不行.老师帮我查看说是xml中的按钮没有获取到(代码第一行),但是我不太明白,新版中要怎么写才行,望赐教.如有什么细节需要补充的还望提出
------解决方案--------------------
和我昨天遇到的问题一样啊,直接复制我的答案吧
原因是是新版SDK创建项目时默认引入的fragment.xml,我的button是定义在fragment.xml里面的,而findviewbyid却是在main.activity里面调用的,而这样是获取不到button的,所以就报了空指针,解决方法有两种

1.在fragment里面获取button,事件响应放在onCreateView里面处理,格式变成(Button)rootView.findViewById,多加了一个rootView
 2.把整个view全都放在main_activity里面,这样的话用以前的方法也不会有问题 
  相关解决方案