使用动作条家居高达按钮,家庭活动saveInstanceState总是空(Using actionb

2019-09-02 05:43发布

活性甲===点击按钮===>活动乙

当按下后退按钮,活动A不会重新创建。

当按home高达按钮,活性A被重建。

所以我保存状态时A.onSaveInstanceState(捆绑outState),并使用状态时A.onRestoreInstanceState(捆绑savedInstanceState)。

保存和使用优良工程(除家庭为向上按钮)

然而,

当按下家里高达键,系统重新创建活动A和savedInstanceState不见了。

如何使用保存的实例状态?

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case android.R.id.home:
        // I do not want this... 
        // Home as up button is to navigate to Home-Activity not previous acitivity
            super.onBackPressed();
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

Answer 1:

在OnCreate()启用主页按钮。

@Override
public void onCreate(Bundle savedInstanceState) {
    ...
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
}

在onOptionItemSelected()方法做到这一点。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    // Respond to the action bar's Up/Home button
    case android.R.id.home:
        NavUtils.navigateUpFromSameTask(this);
        return true;
    }
    return super.onOptionsItemSelected(item);
}

这将使向上导航。 如果你想用savedInstanceState恢复父活动。 你应该设置launchMode="singleTop"在清单文件父活动。

欲了解更多信息请查看http://developer.android.com/:提供多达导航



Answer 2:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    // Respond to the action bar's Up/Home button
    case android.R.id.home:
        finish();
        return true;
    }
    return super.onOptionsItemSelected(item);
}

我用面漆()NavUtils的insteed;



文章来源: Using actionbar home as up button, home activity saveInstanceState is always null