5

我的 Android 应用程序中有一个 ActionBar(API 级别 14)。有一个带有我的应用程序图标的主页按钮。在 MainActivity 我在 EditText 视图中写了一个短文本。当我导航到 PreferenceActivity 时,图标会显示一个箭头来指示我,我可以导航到主页 Activity (MainActivity)。

  // PreferenceActivity-onCreate
  ActionBar actionBar = getActionBar();
  actionBar.setDisplayHomeAsUpEnabled(true);

我在 ActionBar 中单击该应用程序图标以返回 MainActivity

// PreferenceActivity
@Override
public boolean onOptionsItemSelected(MenuItem item) 
{
   switch (item.getItemId()) 
   {
     case android.R.id.home:
        Intent intent = new Intent(this, MainActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(intent);
        return true;
     default:
        return super.onOptionsItemSelected(item);
   }
}

现在我的 MainActivity 再次创建,EditText 中的文本消失了。我以为我可以通过 Intent.FLAG_ACTIVITY_CLEAR_TOP 保持 MainActivity 的活力。我想要一种行为,就像我在设备上使用我的返回按钮一样。

4

2 回答 2

7

如果要返回 的现有实例MainActivity,则需要执行以下操作:

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);

单独使用 CLEAR_TOP 会导致MainActivity创建一个新的实例。

于 2012-12-27T13:28:20.780 回答
0

我相信这是这样做的正确方法。https://stackoverflow.com/a/15933890/238768

使用 Intent.FLAG_ACTIVITY_CLEAR_TOP 将导致与 Gepro 想要做的完全相反的行为!

于 2013-10-26T20:45:29.493 回答