问题描述
- Android提示错误:on a null object reference
-
我是在button的onclick里写的用的swith,一按按钮就崩溃,后来捕捉错误为
Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference
但是我et应该有值啊,不理解case R.id.next:
EditText et = (EditText) v.findViewById(R.id.number);
try {
System.out.println(et.getText().toString());//这句话报错
} catch (Exception ex) {
System.out.println("Error :" + ex.getMessage());
}
break;
解决方案
首先肯定是你的et并没有实例化,所以才会导致空指针,所以还是你的findViewById(R.id.number)中的id又问题
再有可能是你的v中根本没有这个edittext,你应该打日志确定是哪个为空导致的。
解决方案二:
EditText et = (EditText) v.findViewById(R.id.number);
if (et == null){
System.out.println(et.getText().toString());//这句话报错
}
解决方案三:
EditText et = (EditText) v.findViewById(R.id.number);
if (et != null){
System.out.println(et.getText().toString());//这句话报错
}
解决方案四:
一般来说这样的错误提示,是因为你在代码引用了一个 XML 中不存在的控件 ID 而引起的。
所以,请检查出错行代码的控件变量是否正确初始化。
解决方案五:
on a null object reference: 引用了一个空的对象
说明et是空的并不是说et没有值,EditText就是没有值也是不会报错的,肯定是你findViewById这句有问题,仔细检查下
解决方案六:
1 看一下你的对应xml里有没有id为number的EditText。(是EditText不是TextView)
2 看一下你对应的xml是否一致。
解决方案七:
v.是干嘛用的,去掉