我在 Android 应用程序中有两个活动,每个活动都有一个可转到另一个活动的按钮(通过
startActivity()
方法)。在第二个活动中,我有一个编辑文本(URL 地址栏)和一个 Web 视图。
因此,当我单击 Activity1 的按钮来启动 Activity2 时,我会通过 Web 视图获取 Activity2。然后,我在地址栏中输入
cnn.com
(例如),我的 Web 视图将显示 cnn.com
网站。之后,我单击按钮从 Activity2 转到 Activity1。
如果我再次点击activity1的按钮,我就会启动activity2。但是 Activity2 刚刚创建,我的意思是,编辑文本和 Web 视图都是空的。
我想要的是:如果我从activity1返回到activity2,我希望activity2保持最后的状态:编辑文本应保持
cnn.com
并且Web视图应继续显示CNN网站。
所以我需要的不是在启动 Activity1 之前退出 Activity2,而是隐藏它并启动 Activity2,这样如果我再次返回它,我就会得到它的最后状态。 (就像我点击主页按钮一样。)我怎样才能实现这一点?
这是解决您问题的建议。
当您从活动二中的按钮转到活动一时,请确保当您从活动二移动到活动一时,它不应该完成活动二。
现在,当您想返回活动二时,您需要像下面这样调用您的活动。
Intent mIntent=new Intent(yourActivityOne1.this, YourActivity2.class);
mIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
mIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(mIntent);
所以这段代码的作用是让 Activity 首先出现,而无需创建新的 Activity 实例,您可以在那里看到上次加载的网站。
它不会完成 BackPressed 上的活动,它将表现为主页按钮
你可以编辑它..它可能有助于不finsih
@Override
public void onBackPressed()
{
Log.d("CDA", "onBackPressed Called");
Intent setIntent = new Intent(Intent.ACTION_MAIN);
setIntent.addCategory(Intent.CATEGORY_HOME);
setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(setIntent);
}
我不知道如何隐藏它,但我要做的是将活动 2 中的文本保存到 onPause 方法中的首选项中,并在创建活动 2 时从首选项加载数据。
活动 2 将如下所示:
onPause(){
SharedPreferences settings = getSharedPreferences("MyPreferences", MODE_PRIVATE);
SharedPreferences.Editor prefEditor = settings.edit();
prefEditor.putString("activity2Text", textField.getText().toString());
prefEditor.commit();
}
onCreate(){
.....
SharedPreferences settings = getSharedPreferences("MyPreferences", MODE_PRIVATE);
textField.setText(settings.getString("activity2Text","") );
}