披着羊皮的空
2015-08-30 07:01
采纳率: 50%
浏览 22.2k

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;

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

8条回答 默认 最新

  • jellymaybe 2015-08-31 09:05
    已采纳

    首先肯定是你的et并没有实例化,所以才会导致空指针,所以还是你的findViewById(R.id.number)中的id又问题
    再有可能是你的v中根本没有这个edittext,你应该打日志确定是哪个为空导致的。

    点赞 4 打赏 评论
  • 微wx笑 2015-08-30 07:22
     EditText et = (EditText) v.findViewById(R.id.number);
    if (et == null){
         System.out.println(et.getText().toString());//这句话报错
    }
    
    点赞 打赏 评论
  • 91program 2015-08-30 07:46

    一般来说这样的错误提示,是因为你在代码引用了一个 XML 中不存在的控件 ID 而引起的。
    所以,请检查出错行代码的控件变量是否正确初始化。

    点赞 打赏 评论
  • boy_nihao 2015-08-31 01:43

    on a null object reference: 引用了一个空的对象
    说明et是空的并不是说et没有值,EditText就是没有值也是不会报错的,肯定是你findViewById这句有问题,仔细检查下

    点赞 打赏 评论
  • cainiao654321 2015-08-31 09:52

    1 看一下你的对应xml里有没有id为number的EditText。(是EditText不是TextView)
    2 看一下你对应的xml是否一致。

    点赞 打赏 评论
  • 小小Q_Forler 2015-09-02 06:28

    v.是干嘛用的,去掉

    点赞 打赏 评论
  • 一只农民工 2021-07-28 10:27

    Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference
    说明调用.getText()的对象 et为空。
    所以1.查看et的id在xml和代码中是否一致都是number
    2.根据代码 (EditText) v.findViewById(R.id.number); 确认这个et是否在这个v中国,如果没有,请把“v.”去掉 :(EditText) findViewById(R.id.number);
    3.注意id的不要重复

    点赞 打赏 评论
  • 微wx笑 2015-08-30 07:21
     EditText et = (EditText) v.findViewById(R.id.number);
    if (et != null){
         System.out.println(et.getText().toString());//这句话报错
    }
    
    点赞 打赏 评论

相关推荐 更多相似问题