按下后退按钮时Android应用程序关闭

时间:2014-02-28 17:05:57

标签: android android-fragments android-actionbar fragment back-stack

我有以下活动在选择标签时启动片段:

public class MainActivity extends Activity implements TabListener {
    Fragment f = null;
.....

    public void onTabSelected(Tab tab, FragmentTransaction ft) {

        .....

        if (tab.getPosition() == 0) {
            if (initalSync == true) {
                progress1.setVisibility(TRIM_MEMORY_UI_HIDDEN);
            }
            f = new EventFragment();
            Bundle data = new Bundle();
            data.putInt("idx", tab.getPosition());
            f.setArguments(data);

        }
        if (tab.getPosition() == 1) {
            progress1.setVisibility(TRIM_MEMORY_UI_HIDDEN);
            f = new MapsFragment();
            Bundle data = new Bundle();
            data.putInt("idx", tab.getPosition());
            f.setArguments(data);

        }
        .....    
        ft.replace(android.R.id.content, f);

    }

当我按下任何片段上的手机后退按钮时,它会关闭我的应用程序。我知道这与backstack有关,但我尝试过的每一种方法都失败了。

任何想法?

2 个答案:

答案 0 :(得分:0)

如果您不希望在按下时关闭活动,则需要将片段添加到Backstack,您只需调用以下方法:

ft.addToBackStack(null)
在您更换并提交交易之前

。 这样,您正在使用的片段注入将被跟踪,后退按钮将更改为previos片段,直到达到第一个操作,然后它将关闭应用程序。

问候!

答案 1 :(得分:0)

您需要在事务上调用addToBackstack(null)以将片段添加到backstack。然后后退按钮应该恢复到上一个​​片段。