如何在活动之间正确调用方法?

时间:2020-04-15 09:14:21

标签: android

ActivityA.java中,我有tryAgain()方法,它从goToGame()调用ActivityB.java方法。

ActivityA.java

public void tryAgain(View view) {
        ActivityB activityB = new ActivityB();
        activityB.goToGame(view);
    }

我收到以下错误:

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

因为在ActivityB.goToGame()中有以下字符串:

Intent intent = new Intent(getApplicationContext(), GameActivity.class);

我认为该错误是由于错误的activityB.goToGame()或意图getApplicationContext()引起的。

在类似的问题中,建议的解决方案是使用static,但该解决方案还面临很多其他问题。

编辑

考虑:

  1. 我无法将goToGame()设为static

  2. 我无法更改要保留为goToGame()的参数View

  3. 我无法让goToGame()返回任何内容

1 个答案:

答案 0 :(得分:1)

要以正确的方式从ActivityB调用方法,您可以执行以下操作

将其添加到您的ActivityB

public static Intent goToGame(Context context) {

    //here do the things you want to

    return new Intent(context, GameActivity.class);
}

只要您想通过ActivityB打开GameActivity,就使用此

startActivity(ActivityB.goToGame(this));

所以这种风格不正确

ActivityB activityB = new ActivityB();
    activityB.goToGame(view);

这样做

public void tryAgain(View view) {
    startActivity(ActivityB.goToGame(this));
}

希望有帮助!

相关问题