在android中隐藏活动

时间:2012-05-03 16:38:30

标签: android android-activity

我在Android应用程序中有两个活动,每个活动都有一个转到另一个活动的按钮(通过startActivity()方法)。在第二个活动中,我有一个编辑文本(URL地址栏)和一个Web视图。

因此,当我点击activity1的按钮启动activity2时,我会在web视图中获得activity2。然后我在地址栏中输入cnn.com(例如),我的网页视图显示cnn.com网站。之后,我点击按钮从activity2转到activity1。 如果我再次点击activity1的按钮,我会启动activity2。但是我刚刚创建了activity2,编辑文本和Web视图都是空的。

我想要的是:如果我从activity1返回到activity2,我希望activity2保持最后状态:编辑文本应该保持cnn.com,并且Web视图应该继续显示CNN网站。 所以我需要的是在启动activity1之前不要退出activity2,但是只需要隐藏它并启动activity2,这样如果我再次返回它,我就会得到它的最后状态。 (就像我点击主页按钮一样。)我怎样才能实现这个目标?

3 个答案:

答案 0 :(得分:7)

以下是解决问题的建议。

当您从活动二中的按钮开始时,现在您处于活动一中,确保当您从活动二移动到一个时,它不应该完成活动二。

现在当你想回到Activity 2时,你需要在下面调用你的Activity。

            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首先过来而不创建新的活动实例,你可以看到你最近加载的网站。

答案 1 :(得分:1)

我不知道如何隐藏它,但我要做的是将活动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","") );
}

答案 2 :(得分:1)

它不会完成活动onBackPressed它将表现为Home Button

你可以编辑它...它可能有助于不完成

@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);
   }