从Intent

时间:2016-07-14 11:12:33

标签: android android-intent android-manifest intentfilter listactivity

我正在尝试使用菜单栏意图活动来启动活动,但应用程序始终崩溃。希望启动ListActivity活动来执行某些任务。尽管ListActivity在单独使用时工作正常(例如,作为应用程序启动时常用的MainActivity),但是当用户单击菜单栏选项时,通过意图在Activity2.class中使用它可能会有问题。但是,其他菜单栏项在单击时可以正常工作。

从MainActivity.class开始

public class MainActivity extends Activity {
// class code goes here ....

@Override
public boolean onOptionsItemSelected(MenuItem item) {

        switch (item.getItemId()) {

    // other options too in switch statement

    case R.id.activity2:
        MyActivity();
        return true;

    default:
        return super.onOptionsItemSelected(item);
    }

}

//code to launch activity
public void MyActivity()
{
    Intent intent1 = new Intent(.MainActivity.this, Activity2.class);
    startActivity(intent1);
}

}

转到AndroidManifest.xml文件,

//launch ListActivity in Activity2.class when user clicks the Menu Bar option
<activity
        android:name=".Activity2"
        android:label="@string/title_activity2" >

</activity>
}

现在来自Activity2.class:

import android.app.ListActivity;

public class Activity2 extends ListActivity {

// code goes here

}

来自main.xml文件的exert:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:id="@+id/activity2"
        android:orderInCategory="1"
        android:showAsAction="never"
        android:title="@string/action_act"/>
</menu>

并发出activity_main.xml文件:

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    tools:context=".Activity2"
>

<ListView
    android:id="@android:id/mylist"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_above="@+id/lists"
    android:layout_alignParentTop="true"
    android:transcriptMode="alwaysScroll" />
</RelativeLayout>

使用可选的意图过滤器

<activity
    android:name=".Activity2"
    android:label="@string/title_activity2" >
    <intent-filter>
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

这并没有改善任何事情。

Activity2.class调用onStart()方法等。当文件在更改为Activity2之前用作MainActivity时,这一切都有效:

@Override
public void onStart() {
super.onStart();

}

0 个答案:

没有答案