我对此很困惑。在我的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活动设置为启动活动,该活动由意图过滤器设置。