单击菜单后调用另一个活动

时间:2016-06-26 13:28:44

标签: java android android-layout android-studio

我有一个菜单,想要调用下一个活动,以便用户可以计算,然后想要返回下一页或主页,但不知道如何做到这一点...... Ja试图在很多方面,但不是正确的,或者当它在另一个页面上工作时,消失了所有的非法菜单,让你只停留在那个活动中。

我是编程新手,尤其是Android。

MainActivity:

@SuppressWarnings("StatementWithEmptyBody")
    @Override
    public boolean onNavigationItemSelected(MenuItem item) {
        // Handle navigation view item clicks here.
        int id = item.getItemId();

        if (id == R.id.nav_camera) {
            //I want to call the page " calculations" here.

        } else if (id == R.id.nav_gallery) {

    }

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        return true;
    }
}

android_manifest.xml:

    <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.stark.hello_world">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".Splashscreen"
            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"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity
            android:name=".Calculos"
            android:label="@string/action_help"
            android:parentActivityName=".MainActivity" />

    </application>

</manifest>

calculos.xml

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="4dp"
    android:paddingRight="4dp"
    android:paddingTop="4dp"
    android:paddingBottom="4dp"
    tools:context=".MainActivity"
    android:background="#ff0fffab">


    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="SEM"
        android:id="@+id/textView"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true"
        android:textSize="@dimen/abc_text_size_display_3_material"
        android:textColor="#ffffffff" />

    <EditText
        android:id="@+id/email_address"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:inputType="number" />
</RelativeLayout>

app

2 个答案:

答案 0 :(得分:1)

将父活动设置为android_manifest

<activity
        android:name=".Help"
        android:label="@string/action_help"
        android:parentActivityName=".MainActivity" />

答案 1 :(得分:1)

我不确定你的问题,但我想你想在点击菜单项后打开一个新的活动?

为此,您需要在if中启动一个Intent - 我已经为您的代码添加了所需的行

public boolean onNavigationItemSelected(MenuItem item) {
    // Handle navigation view item clicks here.
    int id = item.getItemId();

    if (id == R.id.nav_camera) {
        //I want to call the page " calculations" here.
        //with this code you can call a new activity
        Intent intent = new Intent(this, YourActivity.class);
        startActivity(intent);
    } else if (id == R.id.nav_gallery) {
        //create another Intent here and navigate to the correct activity
}

但我建议使用Fragments而不是Activities并使用getFragmentManager().beginTransaction().replace(YourFragment.newInstance());