Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当我在android中单击最小化/后退按钮时,活动消失_Java_Android_Android Activity_Android Lifecycle - Fatal编程技术网

Java 当我在android中单击最小化/后退按钮时,活动消失

Java 当我在android中单击最小化/后退按钮时,活动消失,java,android,android-activity,android-lifecycle,Java,Android,Android Activity,Android Lifecycle,在我的应用程序中,我有一个活动,如下图所示[![在此处输入图像描述][1][1] 如果我单击“添加患者”按钮,它将重定向到其他活动。如下图所示 如果我在NewPatient activity中单击home(主页)按钮,则显示我的患者活动,NewPatient活动将消失。当应用程序处于NewPatient activity(新患者活动)中时,如果按下home(主页)按钮,您能否建议如何保留NewPatient活动 清单im使用: <activity android:name=".activ

在我的应用程序中,我有一个活动,如下图所示[![在此处输入图像描述][1][1]

如果我单击“添加患者”按钮,它将重定向到其他活动。如下图所示

如果我在NewPatient activity中单击home(主页)按钮,则显示我的患者活动,NewPatient活动将消失。当应用程序处于NewPatient activity(新患者活动)中时,如果按下home(主页)按钮,您能否建议如何保留NewPatient活动

清单im使用:

<activity
 android:name=".activity.patient.PatientsActivity"
 android:parentActivityName=".activity.MainActivity"/>

<activity
 android:name=".activity.patient.PatientFormActivity"
 android:parentActivityName=".activity.patient.PatientsActivity" />

简单地使用回家活动的意图

  @Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (item.getItemId() == android.R.id.home) // Press Back Icon
    {
        Intent i=new Intent(NewPatient.this,HomeActivity.class);
        startActivity(i);

    }

    return super.onOptionsItemSelected(item);
}

简单地使用回家活动的意图

  @Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (item.getItemId() == android.R.id.home) // Press Back Icon
    {
        Intent i=new Intent(NewPatient.this,HomeActivity.class);
        startActivity(i);

    }

    return super.onOptionsItemSelected(item);
}
你的密码在哪里? 但是,您可以在代码中使用这一行

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_HOME) {
        //do somethings you want
    }
    return super.onKeyDown(keyCode, event);
}
你的密码在哪里? 但是,您可以在代码中使用这一行

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_HOME) {
        //do somethings you want
    }
    return super.onKeyDown(keyCode, event);
}
第一个解决方案。基于发射模式

您可以在新患者活动之前移动“我的患者”活动

在清单中将android:launchMode=singleTask设置为我的患者 重写新患者活动的方法,并从中启动我的患者,而无需调用super。 您可以阅读有关启动模式的更多信息

第二个解决方案。基于束的

为“我的患者”活动的结果启动新患者活动。 覆盖新患者活动的方法,并在保存数据以捆绑时将其保存到intent。 在调用super.onBackPressed之前,通过调用将保存的数据提供给我的患者活动 在“我的患者”活动中处理保存的数据 使用保存的数据从“我的患者”活动启动新患者活动的新实例。 第二种方法更合适,痛苦更小。

第一种方法。基于发射模式

您可以在新患者活动之前移动“我的患者”活动

在清单中将android:launchMode=singleTask设置为我的患者 重写新患者活动的方法,并从中启动我的患者,而无需调用super。 您可以阅读有关启动模式的更多信息

第二个解决方案。基于束的

为“我的患者”活动的结果启动新患者活动。 覆盖新患者活动的方法,并在保存数据以捆绑时将其保存到intent。 在调用super.onBackPressed之前,通过调用将保存的数据提供给我的患者活动 在“我的患者”活动中处理保存的数据 使用保存的数据从“我的患者”活动启动新患者活动的新实例。
第二种方法更合适,痛苦更小。

我认为你不需要为这个问题做任何额外的手术。你在其他地方犯了一个错误,无论是在传递意图还是任何清单上。如果您发现任何有用的东西,请使用以下示例:

从textview上的my MainActivity.java单击listener我启动了另一个活动:

findViewById(R.id.text).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(getBaseContext(),Activity2.class));
            }
        });
这些活动的清单如下:

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

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".Activity2">
        </activity>
    </application>

</manifest>

它按照你想要的方式工作。当我们回到应用程序时,Activity2将保持打开状态。希望它对您有所帮助。

我认为您不需要为此问题执行任何额外操作。你在其他地方犯了一个错误,无论是在传递意图还是任何清单上。如果您发现任何有用的东西,请使用以下示例:

从textview上的my MainActivity.java单击listener我启动了另一个活动:

findViewById(R.id.text).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(getBaseContext(),Activity2.class));
            }
        });
这些活动的清单如下:

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

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".Activity2">
        </activity>
    </application>

</manifest>

它按照你想要的方式工作。当我们回到应用程序时,“活动2”将保持打开状态。希望它对您有所帮助。

我询问我何时参加新患者活动,何时单击“主页导航”。恢复显示我的患者活动后,我会询问我何时参加新患者活动,何时单击主页导航。恢复显示MyPatient活动后,他们共享启动NewPatient活动的代码,您是否有意使用该标志,或您在清单中使用的新患者活动启动模式他们共享启动NewPatient活动的代码,您是有意使用Flag还是在清单中使用哪种启动模式来执行NewPatient活动