textout.getText() 导致“可能产生'java.lang.NullPointerException'”消息

Posted

技术标签:

【中文标题】textout.getText() 导致“可能产生\'java.lang.NullPointerException\'”消息【英文标题】:textout.getText() is leading to a "may produce 'java.lang.NullPointerException'" messagetextout.getText() 导致“可能产生'java.lang.NullPointerException'”消息 【发布时间】:2016-09-27 17:23:27 【问题描述】:
public class MainActivity extends AppCompatActivity 

    public void one (View view)
        EditText textout=(EditText)findViewById (R.id.textView);
        Double amount = Double.parseDouble(**textout.getText()**.toString());
        Double amountOne= amount + 1;
        textout.setText(**amountOne.toString()**);

 

第一个问题是getText()方法导致了一个

可能会产生'java.lang.NullPointerException

消息。

第二个是amountOne.toString() 导致一个

数字格式不考虑区域设置。考虑改用 String.format

有人可以帮我解决这些问题吗?

【问题讨论】:

这些是来自 android Studio 的警告。您可以选择对它们做些什么,也可以忽略它们。 但应用程序正在关闭且无法运行 好的,在这种情况下,您可以发布导致问题的活动以及堆栈跟踪吗? 听起来 IDE 给了你很好的建议。这些概念并不难理解,因此我建议搜索其中的每一个术语以进一步澄清。 问题已解决(与笔记无关) 【参考方案1】:

onCreate()方法中编写如下代码

 EditText textout = (EditText)findViewById(R.id.textView);

【讨论】:

【参考方案2】:

检查textout 是否为null

if (textout != null) 
    textout.setText(String.format(Locale.getDefault(),"%f", amountOne);

如果您只需要 1 个小数位,请使用 %.1f 而不是 %f%.2f 代表 2 个小数位,以此类推。

【讨论】:

以上是关于textout.getText() 导致“可能产生'java.lang.NullPointerException'”消息的主要内容,如果未能解决你的问题,请参考以下文章

Redis缓冲区设置

Release库与Debug库混用导致释放堆内存时产生异常的详细分析

Spring Joint 2D(可能)导致 transform.position 错误

SQLserver2008 当前命令发生了严重错误。应放弃任何可能产生的结果

GC频繁抖动的主要原因

脏数据的预防及处理