2

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

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

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

4

2 回答 2

3

为了启动一个意图,在 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

where.MainActivity是类的名称,com.example.package是您的包名称,EXCLASS是您想要的任何名称,但请记住您命名它的名称。

对于你想开始的每一个新活动,你应该<activity> />在 AndroidManifest 中重新声明一个新的,具有相同的包名,一个新词而不是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"));在哪里,并且是您在 AndroidManifest 中声明的任何内容。com.example.packageEXCLASS

最终结果将是:

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"));
        }

希望这有帮助!

于 2012-09-02T12:28:07.603 回答
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);
于 2012-09-02T12:17:59.373 回答