当我点按后退按钮时,为什么我的活动会重置?

时间:2017-02-07 00:31:15

标签: android android-activity

我在一个活动中有一个后退按钮,当我点击它返回到父活动时,它将重置父活动。这就像再次调用onCreate()一样。我不确定为什么会这样,因为当您点按后退按钮时,它只会调用finish()来存在我当前所处的活动。

以下是我如何声明工具栏:

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_add_item);
    Toolbar toolbar = (Toolbar) findViewById(R.id.my_toolbar);
    setSupportActionBar(toolbar);

   if(getSupportActionBar() != null)
   {
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowHomeEnabled(true);
   }

点击按钮时会发生这种情况:

public boolean onOptionsItemSelected(MenuItem item)
{
    if (item.getItemId()==android.R.id.home)
    {
        finish();
    }
    return super.onOptionsItemSelected(item);
}

奇怪的是,当我点击保存按钮时,我返回父活动而没有任何重置。所以我不确定为什么会这样。

1 个答案:

答案 0 :(得分:1)

您需要返回true,否则它将始终调用onCreat()方法。此外,您可以创建一个“空”意图,而不是在您返回的活动上处理它。

@Override
public boolean onOptionsItemSelected(MenuItem item)
{
    if (item.getItemId()==android.R.id.home)
    {
        Intent intent = new Intent();
        setResult(Intent_Constant.TAPPED_BACK_BUTTON, intent);
        finish();
        return true;
    }
    return super.onOptionsItemSelected(item);
}