我对此很困惑。在我的MainActivity.java文件中,有一个按钮应该转到另一个文件RedGreenTest.java中的另一个类。

redButton.setOnClickListener(new View.OnClickListener(){
    @Override
    public void onClick(View v){
        findViewById(R.id.testRG_button);
        Intent i = new Intent(MainActivity.this, RedGreenTest.class);
        startActivity(i);
    }
});


因此,该按钮被单击,并且bam insta-crash。调试器告诉我startActivity(i);不存在。进入清单,我将<activity android:name=".MainActivity">更改为<activity android:name=".RedGreenTest">,应用程序启动就很好了。

这是MainActivity.java文件中onCreate()类的开头:

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


还有我的RedGreenTest.java中的onCreate():

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


通过调试器运行此文件,在清单中设置RedGreenTest.java文件时,我没有收到任何错误。

从这个应该简单的意图切换中我到底缺少什么基本要素?

最佳答案

您需要将两个活动都添加到清单中:

<activity android:name=".RedGreenTest">
  ...
<activity android:name=".MainActivity">
      <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>


将MainActivity更改为RedGreenTest时,应用程序启动的原因是,您将RedGreenTest活动设置为启动活动,该活动由意图过滤器设置。

07-25 20:26