Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.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 来自另一个类的android studio问题调用方法_Java_Android Studio - Fatal编程技术网

Java 来自另一个类的android studio问题调用方法

Java 来自另一个类的android studio问题调用方法,java,android-studio,Java,Android Studio,它成功地运行了这个应用程序,但在我点击按钮后,它弹出了一个错误。谁能解释一下为什么会出错 头等舱 public class Storepage extends AppCompatActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.newpag

它成功地运行了这个应用程序,但在我点击按钮后,它弹出了一个错误。谁能解释一下为什么会出错

头等舱

public class Storepage extends AppCompatActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.newpage);


    }

public void hello()
{
        Intent intent = new Intent(this, Main2Activity.class);
        startActivity(intent);

}
}
二等舱

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn1 = (Button) findViewById(R.id.colour1);

        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Storepage wow = new Storepage();
                wow.hello();


            }
        });


    }

2019-12-27 14:18:39.278 20488-20488/com.example.SharedReferences E/AndroidRuntime:致命异常:main 进程:com.example.SharedReferences,PID:20488 java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“java.lang.String android.content.Context.getPackageName()” 位于android.content.ContextWrapper.getPackageName(ContextWrapper.java:135) 位于android.content.ComponentName。(ComponentName.java:130) 位于android.content.Intent.(Intent.java:5688) 在com.example.SharedReferences.Storepage.hello(Storepage.java:21)上 位于com.example.SharedReferences.MainActivity$1.onClick(MainActivity.java:25) 在android.view.view.performClick上(view.java:6256) 在android.view.view$PerformClick.run(view.java:24701) 位于android.os.Handler.handleCallback(Handler.java:789) 位于android.os.Handler.dispatchMessage(Handler.java:98) 位于android.os.Looper.loop(Looper.java:164) 位于android.app.ActivityThread.main(ActivityThread.java:6541) 位于java.lang.reflect.Method.invoke(本机方法) 在com.android.internal.os.Zygote$MethodAndArgsCaller.run上(Zygote.java:240) 位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)


上面是显示错误

您不能像以前那样初始化活动类

Storepage wow = new Storepage();//Wrong
 wow.hello();
这是错误的。要么将hello()方法放在单独的类中,然后像下面这样调用

public class ActivityRouter{

public static void hello()
{
        Intent intent = new Intent(this, Main2Activity.class);
        startActivity(intent);

}
}
然后按下面的按钮进行呼叫

ActivityRouter.hello();

你能把错误发出去吗?我发了。