我无法使用意图进入下一个活动

时间:2012-09-02 12:13:22

标签: android android-layout android-intent android-widget

单击每个项目时,我无法启动“新活动”,我使用的条件如if-else,

if (item.equals("Aerosol")) {
  startActivity(new Intent(Search.this, Aerosol.class));
  startActivity(intent);

我用这个没有错,但我不能去下一堂课。

2 个答案:

答案 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);