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