Android 如何在带有更多选项卡的操作栏上添加后退按钮

Android 如何在带有更多选项卡的操作栏上添加后退按钮,android,android-fragments,android-activity,android-actionbar,android-tabs,Android,Android Fragments,Android Activity,Android Actionbar,Android Tabs,知道我如何在我的操作栏上添加一个后退按钮吗?我想在“信息”选项卡之前添加“后退”按钮。我试过一些方法,但没有一种不适合我。好吧,让我们从开始说起 在左半部分,这是我作为actionbar需要做的事情,在右半部分,这是我的项目现在的样子 我尝试将该代码用于“添加后退”按钮,但它不起作用: actionBar.setDisplayShowTitleEnabled(false); actionBar.setHomeButtonEnabled(true); 这是我的活动: 公共类TrailAc

知道我如何在我的操作栏上添加一个后退按钮吗?我想在“信息”选项卡之前添加“后退”按钮。我试过一些方法,但没有一种不适合我。好吧,让我们从开始说起

在左半部分,这是我作为actionbar需要做的事情,在右半部分,这是我的项目现在的样子

我尝试将该代码用于“添加后退”按钮,但它不起作用:

  actionBar.setDisplayShowTitleEnabled(false);
  actionBar.setHomeButtonEnabled(true);
这是我的活动: 公共类TrailActivity扩展FragmentActivity实现ActionBar.TabListener{

SectionsPagerAdapter mSectionsPagerAdapter;

ViewPager mViewPager;
Intent intent;
Trail trail;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    intent = getIntent();
    setContentView(R.layout.trail_fracment_main);

    trail = intent.getParcelableExtra("trail");

    final ActionBar actionBar = getActionBar();
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    actionBar.setDisplayShowTitleEnabled(false);
    actionBar.setHomeButtonEnabled(true);

    mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());

    mViewPager = (ViewPager) findViewById(R.id.pager);
    mViewPager.setAdapter(mSectionsPagerAdapter);
    mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
        @Override
        public void onPageSelected(int position) {
            actionBar.setSelectedNavigationItem(position);
        }
    });
    for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) {
        actionBar.addTab(actionBar.newTab().setText(mSectionsPagerAdapter.getPageTitle(i)).setTabListener(this));
    }
}
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
    mViewPager.setCurrentItem(tab.getPosition());
}

@Override
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
}

@Override
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
}

public class SectionsPagerAdapter extends FragmentPagerAdapter {

    public SectionsPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        if (position == 0) {
            InfoFragments infoFragments = new InfoFragments();
            infoFragments.setTrail(trail);
            Fragment fragment = infoFragments;
            return fragment;
        } else if (position == 1) {
            return new MapFragments();

        } else {
            return new WondersFragments();
        }

    }

    @Override
    public int getCount() {
        return 3;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        Locale l = Locale.getDefault();
        switch (position) {
            case 0:
                return getString(R.string.title_section1).toUpperCase(l);
            case 1:
                return getString(R.string.title_section2).toUpperCase(l);
            case 2:
                return getString(R.string.title_section3).toUpperCase(l);
        }
        return null;
    }
}
我还尝试添加和覆盖方法,但再次…什么也没有发生:(

我已经试过了……但是再次……我没有得到任何结果:(


所以,请各位,如果有人知道我如何解决这个问题,请告诉我……我真的需要这样做,而且速度有多快。

Eerr…您没有使用操作栏。我不确定。如果您设置自定义工具栏,它应该会起作用。我现在确定我是否已将其配置好……如果您知道我如何实现……请告诉我,我真的需要让它工作…呃…你没有使用操作栏。我不确定。如果你设置了自定义工具栏,它应该会工作。我现在确定我是否已经配置好了…如果你知道我该怎么做…请告诉我,我真的需要让它工作。。
@Override
public void onCreate(Bundle savedInstanceState) {
    //Listen for changes in the back stack
    getSupportFragmentManager().addOnBackStackChangedListener(this);
    //Handle when activity is recreated like on orientation Change
    shouldDisplayHomeUp();
}

@Override
public void onBackStackChanged() {
    shouldDisplayHomeUp();
}

public void shouldDisplayHomeUp(){
   //Enable Up button only  if there are entries in the back stack
   boolean canback = getSupportFragmentManager().getBackStackEntryCount()>0;
   getSupportActionBar().setDisplayHomeAsUpEnabled(canback);
}

@Override
public boolean onSupportNavigateUp() {
    //This method is called when the up button is pressed. Just the pop back stack.
    getSupportFragmentManager().popBackStack();
    return true;
}
    @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);
        }
    }