在修复backstack的片段时,我无法恢复标题ActionBar

时间:2014-11-10 10:11:47

标签: android

第一个片段时,

打开,我在ActionBar中放入标题

 getActivity().setTitle("Guests" + hotel + "" + "(" + count + ")");

如果这件作品另外打开,我把一个新的标题和片段放在后台并隐藏

 @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
        FragmentTransaction fTrans = getFragmentManager().beginTransaction();
        Fragment guestFragment = new Guest();
        fTrans.hide(this);
        fTrans.add(R.id.content_frame, guestFragment, "guest");
        fTrans.addToBackStack(null);
        fTrans.commit();
    }

在新片段中正确展示标题

getActivity().setTitle(guests.get(0).getName());

但是当我单击后退按钮并打开时,旧的片段标题保持不变。我不知道当片段从后台堆栈拉出时触发了哪种方法。

我试过onResume,onStart但没有任何反应

@Override
    public void onResume() {
        getActivity().setTitle("fgfdhgfdjhj");
        super.onResume();
    }

2 个答案:

答案 0 :(得分:0)

setTitle方法移至onActivityCreated()

答案 1 :(得分:0)

第一个片段public static String header;header = "Guests" + hotel + "" + "(" + count + ")";

中的

第二个片段中的

@Override
    public void onDestroy() {
        getActivity().setTitle(GuestsList.header);
        super.onDestroy();
    }

我不知道它是怎么回事但是有效。如果有人知道更好的解决方案,请写下