Android Intent切换崩溃点击

时间:2017-03-23 00:27:46

标签: java android android-intent

我对这个很困惑。在我的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);没有dua。进入清单,我将<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);
...

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

我从这个应该是简单的意图切换中失去了什么基础?

1 个答案:

答案 0 :(得分:1)

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

<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活动设置为启动活动,该活动由intent过滤器设置。