2012-09-02 27 views
1

我不能启动“新活动”单击各个项目时,我使用诸如如果其他的条件,我不能去到下一个活动,使用意图

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

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

+0

startActivity(intent); ?????你在哪里初始化了“意图”? –

回答

2

为了启动意图,声明在AndroidManifest的意图是这样的:

<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,并且android:name=".MainActivity"应更改为是类的精确副本在前面放置小数的名称。所以它看起来像这样本应放在<application> />声明之后:

<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> 

在你的类,MainActivity在我的例子,你将宣布startActivity(new Intent("com.example.package.EXCLASS"));其中com.example.package是你的包名,EXCLASS是无论你宣布它为在AndroidManifest中。

的结束结果将是:

private void select(String item) { 
    try { 
     if (item.equals("Aerosol")) { 
      startActivity(new Intent("com.example.package.CLASSONE")); 
     } 
     if (item.equals("Aluminium")) { 
      startActivity(new Intent("com.example.package.CLASSTWO")); 
     } 

希望这有助于!

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); 
相关问题