当前位置: 首页 > 知识库问答 >
问题:

我有一个方法调用“simpleditext”。getText()可能会产生java。lang.NullPointerException'错误,希望将其删除

常俊爽
2023-03-14

Android Studio非常新。使用EditText处理第一个应用程序。我想修复下面的代码行,这样就不会出现错误:我有一个方法调用'simpleditext'。getText()可能会产生java。lang.NullPointerException'错误,希望将其删除。任何建议都很好。我想这意味着我需要在获取文本之前检查SimpleEdit是否有空值?

/*
 * Retrieve Edit Text Values
 */
    EditText simpleEditText = (EditText) findViewById(R.id.editLat);
    String strValue = simpleEditText.getText().toString();

这是与editLat关联的XML资源:

<EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="numberDecimal"
        android:singleLine="true"
        android:lines="1"
        android:textSize="15dp"
        android:hint="@string/lat_hint"
        android:id="@+id/editLat"
        android:layout_below="@+id/textAsset"
        android:layout_toEndOf="@+id/textView3" />

共有2个答案

慕祯
2023-03-14

这是因为getText()是一个对象,可能没有赋值且为null。基本体和对象之间的区别在于基本体不能为null,但有一个默认值,例如int为0,boolean为false。所以当你得到我假设的文本对象时,你唯一能做的就是在下面的代码中。。。。

    /*
     * Retrieve Edit Text Values
     */
    EditText simpleEditText = (EditText) findViewById(R.id.editLat);
    Text text = simpleEditText.getText();
    String textString;
    if(text != null){
     textString = text.toString();
    } else {
       // Handle missing text object
    }

空检查和处理没有错。这是你唯一的解决方案,除非你自己的Android API和改变自己的库。

蒋弘致
2023-03-14

您可以在初始化某个东西并且不确定它是否为空时添加安全检查:

String strValue;
EditText simpleEditText = (EditText) findViewById(R.id.editLat);
if(simpleEditText != null && !TextUtils.isEmpty(simpleEditText.getText())){
    strValue = simpleEditText.getText().toString();
}
 类似资料:
  • 我有个密码: 我收到一个警告 我怎么才能修好它?

  • 我正在检查和。尽管如此,我还是在Android studio的上收到了警告。 如何避免这种警告? 我使用的是改型:2.3.0和GSON:2.8.1。我已经尝试了这个问题的解决方案(refitfit方法调用可能会产生'java.lang.NullPointerException')。但它不起作用

  • 我正在使用改型2从我的API获得响应,并将其值存储在我的常量中,如下所示 它在下面这三个方面给了我警告 我很困惑,无法解决此警告。让我知道如果有人能帮我走出来。

  • 这是我的方法compute(),它接受月数: 要提供上下文, 余额:是员工每月初获得的固定月薪 我的输入示例如下: 如果比尔·乔布斯(BillJobs)是余额为54K的员工,每年从银行获得0%和1.2%的年利率,计算时间将超过13个月。我的期望输出应该是: 其中706933.71的余额是在调用compute方法时计算出来的,但是我最终得到 13个月后的余额为705852.63。

  • 开发平台:Mac OSX IDE:NetBeans目标设备:Android主题:构建服务器问题 细节: 我恢复了我上次发送到构建服务器的一个旧的CN1项目~2年前。我花了大量的时间做广泛的重构,它在模拟器上工作得很好。请注意,该应用程序使用自定义的cn1lib,我有相当多的代码。模拟器似乎很适合这个。 然而,当我试图“发送Android build”到构建服务器时,它得到了一个java。lang.