在android片段活动中实现back按钮

在android片段活动中实现back按钮,android,android-fragments,android-actionbar,back-button,Android,Android Fragments,Android Actionbar,Back Button,我用这个教程来实现facebook登录等 我在这里添加了新的片段来显示好友列表。现在,当我按下新添加的片段上的后退按钮时,它会将我带到飞溅片段,我希望在动作栏上的后退按钮上有相同的行为。意思是当我在我的新片段上时,它会在动作栏上显示一个后退按钮。按下后退按钮,我又回到了初始屏幕 private void showFragment(int fragmentIndex, boolean addToBackStack) { FragmentManager fm = getSupportFra

我用这个教程来实现facebook登录等

我在这里添加了新的片段来显示好友列表。现在,当我按下新添加的片段上的后退按钮时,它会将我带到飞溅片段,我希望在动作栏上的后退按钮上有相同的行为。意思是当我在我的新片段上时,它会在动作栏上显示一个后退按钮。按下后退按钮,我又回到了初始屏幕

private void showFragment(int fragmentIndex, boolean addToBackStack) {
    FragmentManager fm = getSupportFragmentManager();
    FragmentTransaction transaction = fm.beginTransaction();
    for (int i = 0; i < fragments.length; i++) {
        if (i == fragmentIndex) {
            transaction.show(fragments[i]);
        } else {
            transaction.hide(fragments[i]);
        }
    }
    if (addToBackStack) {
        transaction.addToBackStack(null);
    }
    transaction.commit();
}

private void showFragment(int fragmentIndex,boolean addToBackStack){
FragmentManager fm=getSupportFragmentManager();
FragmentTransaction=fm.beginTransaction();
for(int i=0;i
我在努力搜索后在stackoverflow上获得了此代码,希望这对您有所帮助

ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);// in on Create()
搜索代码
onOptionsItemSelected(菜单项)
并以这种方式编辑它

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
    case android.R.id.home:
        // change your behaviour here
        Intent intent = new Intent(this, yourclass.class);// i started new activity here
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(intent);
        return true;
  }
    return super.onOptionsItemSelected(item);
}

您可以通过两种方式实现这一点:

1。在你的碎片里

    @Override
    public void onDetach()
    {
    super.onDetach();
    PUT YOUR CODE HERE    
    }
这将在片段完成时调用

2。在片段之间转换时,只需添加
addToBackStack
,如下所示:

    fragmentManager.beginTransaction().replace(R.id.content_frame,fragment).addToBackStack("tag").commit();
如果您编写addToBackStack(null),它将自行处理,但如果您提供一个标记,则应手动处理

编辑:

用于进行交易

FragmentTransaction fragmentTransaction =  getActivity().getSupportFragmentManager().beginTransaction();         
Fragment scheduleFragment = new ScheduleFragment();     
fragmentTransaction.replace(R.id.content_container, scheduleFragment, "scheduleFragment");
fragmentTransaction.addToBackStack("scheduleFragment");
fragmentTransaction.commit();
@Yawar actionbar仅在“活动”中,这将添加到“活动”中,每次按actionbar主页按钮-->


可能重复的锯,已经,但没有回答被选为答案,所以混乱没有你弄错了,我想得到同样的行为按下后退按钮的行动栏。我在安卓上按下后退按钮。这是活动,我想要它的片段。我还添加了一张图片。在我的问题中抱歉,但我看不到图片,它们被我们计算机中的管理员阻止。我发现这个示例对您的案例很有用,我使用第二种方法:)先生,我用一个函数代码片段编辑了我的问题,我正在使用该代码片段高效地从一个片段转换到另一个片段。我想要的是在片段4的顶部添加一个后退按钮,将我带回片段3。我的应用程序已经在操作栏上添加了后退按钮。意思是当按下碎片4上android设备的后退按钮时,我会进入碎片3。我想在片段4的顶部也有一个按钮来为我做同样的事情。然后在按钮点击上做一个交易。我不知道如何在操作栏上添加后退按钮。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
    case android.R.id.home:
        // app icon in action bar clicked; goto parent activity.
        this.finish();
        return true;
    default:
        return super.onOptionsItemSelected(item);
}
}