java - 启动 Intent 时上下文空指针

标签 java android

嗨,我是 android studio 的新手,我正在尝试开始一项新 Activity - 然而,我在获取上下文方面遇到了无尽的问题 - 我已经尝试了在堆栈溢出上发布的几种不同方法,但它只是不断抛出空指针请帮忙。请参阅下面的 onCreate 方法和异常。

AddRoutine.class 只是一个空白 Activity

主要 Activity

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        MainActivity.mContext = this.getApplicationContext();
        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        //Add Routine
        FloatingActionButton fab = findViewById(R.id.addRoutine);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startActivity(new Intent(MainActivity.this, AddRoutine.class));
            }
        });

        generateRoutineListing(getAppContext());
        //if returnListing.length > 0
        // recyclerView.addItems
        //else
        // Show Jumbotron/Message board explaining that no routines have been created
    }

异常

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: za.co.freelanceweb.routines, PID: 14648
    java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Context.getPackageName()' on a null object reference
        at android.content.ComponentName.<init>(ComponentName.java:130)
        at android.content.Intent.<init>(Intent.java:5780)
        at za.co.freelanceweb.routines.MainActivity$1.onClick(MainActivity.java:38)
        at android.view.View.performClick(View.java:6294)
        at android.view.View$PerformClick.run(View.java:24774)
        at android.os.Handler.handleCallback(Handler.java:790)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6518)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

非常感谢

最佳答案

而不是:

 MainActivity.mContext = this.getApplicationContext();

用途:

Context mcontext = MainActivity.this;  //Also, set mcontext as a global variable.

另外,

而不是:

 generateRoutineListing(getAppContext());

用途:

 generateRoutineListing(mcontext);

关于java - 启动 Intent 时上下文空指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61362158/

相关文章:

java - 无法从主 Java 目录导入到测试目录 (IntelliJ)

android - 以编程方式取消android线程

android - 如何设置 ActionMode LayoutParams 以使自定义 View match_parent?

android - onClick 和 onLongClick 似乎是并行触发的

java - 如何在android中显示FTP下载的进度条更新

java - 无法实例化类 packageName.pageName

java - 读取jtable选定行的值

java - Spring Data : issue with OneToMany, 子级未正确保存

java - 为什么将私有(private)字段的副本声明为 `final`

java - 谁能推荐一个简单的 Java web-app 框架?