单击每个项目时,我无法启动“新活动”,我使用的条件如if-else,
if (item.equals("Aerosol")) {
startActivity(new Intent(Search.this, Aerosol.class));
startActivity(intent);
我用这个没有错,但我不能去下一堂课。
答案 0 :(得分:2)
为了启动一个intent,请在AndroidManifest中声明Intent:
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name">
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="com.example.package.EXCLASS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application
其中.MainActivity
是该类的名称,com.example.package
是您的包名,EXCLASS
是您想要的,但请记住您的名称。
对于您想要开始的每项新活动,您应该在AndroidManifest中重新声明新的<activity> />
,使用相同的pacakage名称,使用新单词而不是EXCLASS
,以及{{1}应该更改为类名的精确副本,并在前面放置一个小数。这应该放在android:name=".MainActivity"
声明之后,所以它看起来像这样:
<application> />
在您的班级,我的示例中的MainActivity,您将声明<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".StartingActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="com.example.package.EXCLASS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
其中startActivity(new Intent("com.example.package.EXCLASS"));
是您的包名称,而com.example.package
是您在AndroidManifest中声明的内容。
结果将是:
EXCLASS
希望这有帮助!
答案 1 :(得分:1)
您需要做的是,实例化新意图,而不是调用意图。
你应该这样做:
if (item.equals("Aerosol")) {
intent = new Intent(Search.this, Aerosol.class);
}else if (item.equals("Aluminium")) {
intent = new Intent(Search.this, Aluminium.class);
}
startActivity(intent);