Java 在片段上实现向上导航

Java 在片段上实现向上导航,java,android,android-fragments,android-studio,Java,Android,Android Fragments,Android Studio,我有一个包含片段a的主要活动。当我单击FragmentA时,会发生以下情况: getFragmentManager().beginTransaction().replace(R.id.container,new PrefFragment()).addToBackStack("back").commit(); 我的舱单上有: <activity> <meta-data android:name="android.support.PARENT_AC

我有一个包含片段a的主要活动。当我单击FragmentA时,会发生以下情况:

getFragmentManager().beginTransaction().replace(R.id.container,new PrefFragment()).addToBackStack("back").commit();
我的舱单上有:

<activity>
<meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value="com.example.myfirstapp.MainActivity" />
</activity>
但“向上”按钮导航始终可见

FragmentB包含以下代码:

 @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id=item.getItemId();
        switch (id)
        {
            case android.R.id.home:
                getFragmentManager().popBackStack();
                Toast.makeText(getActivity(),"CLick",Toast.LENGTH_SHORT).show();

                break;
        }
        return super.onOptionsItemSelected(item);



    }
此代码不运行。
我只需要在FragmentB中实现向上导航。我该怎么做?

据我所知,上行导航必须仅在FragmentB中工作,而如果显示FragmentA,上行导航将被隐藏。如果是,则在活动中,删除
getActionBar()。setDisplayHomeAsUpEnabled(true)来自
onCreate

此外,处理菜单单击时必须返回true,并将onOptions ItemSelected(MenuItem)移动到活动,因为android.R.id.home菜单单击仅传递到活动

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            getFragmentManager().popBackStack();
            Toast.makeText(getActivity(),"CLick",Toast.LENGTH_SHORT).show();
            return true; //Notice you must returning true here

        default:
            return super.onOptionsItemSelected(item);
    }
}
支离破碎

@Override
public void onAttach(Activity a) {
    super.onAttach(a);
    a.getActionBar().setDisplayHomeAsUpEnabled(false);
}
零碎的

@Override
public void onAttach(Activity a) {
    super.onAttach(a);
    a.getActionBar().setDisplayHomeAsUpEnabled(true);
}

该片段中操作栏的getInstance和setDisplayHomeAsUpEnabled to falseOk现在仅在FragmentB中显示,但不显示toast,当我单击Up时,也不返回FragmentAButton@user1608228我想如果显示碎片B,你需要去碎片A。如果显示片段A,则表示您不想进行导航,或者是这样?然后问题对我来说不清楚。是的,我需要转到FragmentA如果显示FragmentB,现在向上按钮是确定的,但是当我单击nothing时happens@user1608228我懂了。原因是片段没有它的菜单,所以不会调用onOptions ItemSelected。将
onOptions ItemSelected
代码移动到
活动
@Override
public void onAttach(Activity a) {
    super.onAttach(a);
    a.getActionBar().setDisplayHomeAsUpEnabled(true);
}