Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么将此代码放入函数不会导致空指针异常?_Java_Android_Nullpointerexception - Fatal编程技术网

Java 为什么将此代码放入函数不会导致空指针异常?

Java 为什么将此代码放入函数不会导致空指针异常?,java,android,nullpointerexception,Java,Android,Nullpointerexception,我在Udacity上学习谷歌的android课程,学习android和Java。目前,我正在做的项目是构建一个代表订购咖啡的应用程序。这里有一个quantity文本视图,还有一个+和-按钮,单击该按钮可以增加或减少数量,还有一个submit order按钮,该按钮调用打印订单摘要的方法 不幸的是,我丢失了应用程序的原始源代码,所以我尝试自己重新构建它。我让它工作,但不是以我最初设计的方式。我遇到的问题是,如果我引用TextView,它存储在自己方法之外订购的咖啡量,应用程序会立即因NullPoi

我在Udacity上学习谷歌的android课程,学习android和Java。目前,我正在做的项目是构建一个代表订购咖啡的应用程序。这里有一个quantity文本视图,还有一个+和-按钮,单击该按钮可以增加或减少数量,还有一个submit order按钮,该按钮调用打印订单摘要的方法

不幸的是,我丢失了应用程序的原始源代码,所以我尝试自己重新构建它。我让它工作,但不是以我最初设计的方式。我遇到的问题是,如果我引用TextView,它存储在自己方法之外订购的咖啡量,应用程序会立即因NullPointerException而崩溃。但是,如果我通过创建一个名为display(int number)的方法来引用TextView,应用程序运行良好。是什么导致此NullPointerException?我在下面提供了两个源代码的链接,其中一个工作正常,另一个立即崩溃

NullPointerException: 在此代码中导致应用程序崩溃的部分位于MainActivity.java文件的第18行

工作正常: 在本例中,在第37-39行中,我创建了一个方法,该方法包含与上面示例中相同的引用TextView的代码,稍后由+和-按钮的方法调用

谢谢大家!


 <TextView
    android:text="Order Summary"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="16dp"
    android:textAllCaps="true"/>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="16dp"
    android:id="@+id/order_summary"
    android:text="$0"/>

您忘记为第一个文本视图输入id。希望将id添加到第一个文本视图可以解决问题

findViewById
要求
活动
onCreate(Bundle)

在第一个代码示例中,您使用
onCreate
方法之外的id“quantity”初始化
TextView
,因此在创建
活动
对象时,它将被初始化。此时,没有根
视图
,因此
findViewById
方法试图在视图层次结构中搜索所需的
TextView
,但根视图为
null


在第二个代码示例中,
findViewById
仅在
onClick
方法中调用,因此只有在视图层次结构膨胀后才能调用,因此一切正常。

因为它在onCreate方法之外。请将相关代码放在问题本身中,不要只在场外链接到它。抱歉,我仍然习惯于发布代码,我不确定什么是相关的或不相关的。我道歉。