gpt4 book ai didi

java - getApplicationContext 导致 NullPointerException

转载 作者:太空宇宙 更新时间:2023-11-04 11:29:24 25 4
gpt4 key购买 nike

我刚刚开始尝试在 Android Studio 中学习开发,当我试图让我的第一个应用程序工作时(我也是 stackoverflow 的新手,所以如果我呈现此线程的方式不令人满意,请原谅),我遇到了 nullpointerexceptions 的砖墙。我只想制作一个按钮,当我单击它时显示一条短信( toast )。这可能是一个典型的新手错误,但我似乎无法找出问题到底是什么。有人可以启发我吗?

据我所知,错误消息的相关部分是:

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.content.Context.getApplicationContext()' on a null object reference

代码如下:

public class FirstActivity extends AppCompatActivity {

private static FirstActivity instance;



Context context = getApplicationContext();
CharSequence text = "A text that appears for a short time";
int duration = Toast.LENGTH_SHORT;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);


}

public void buttonclick(View view){
Toast toast1 = Toast.makeText(context,text,duration);

}

}

和 xml:

    <?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.rayaqin.myfirstandroidapp.FirstActivity">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="259dp"
android:text="Press Me"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" />

<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Me"
tools:layout_editor_absoluteX="-498dp"
tools:layout_editor_absoluteY="527dp"
android:onClick="buttonclick"/>

</android.support.constraint.ConstraintLayout>

最佳答案

getApplicationContext() 是一个实例方法,您尝试从静态上下文中调用它。

只需将其移至onCreate()即可。

但是Activity不需要应用程序Context,因为它本身扩展了它。在

中使用 this
Toast toast1 = Toast.makeText(this,text,duration);

并展示它

Toast.makeText(this,text,duration).show();

关于java - getApplicationContext 导致 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43962112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com