Java 获取其类外的制表符位置

Java 获取其类外的制表符位置,java,android,tabs,actionbarsherlock,Java,Android,Tabs,Actionbarsherlock,我有一个日历应用程序。我正在使用ActionBar夏洛克和标签。我还在操作栏中实现了选项菜单。我希望在选择选项卡时,操作栏中的一个菜单项的行为有所不同 如何在onOptions ItemSelected(MenuItem项)方法中获得选项卡位置,以便我可以据此对菜单项进行编码 @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Actio

我有一个日历应用程序。我正在使用ActionBar夏洛克和标签。我还在操作栏中实现了选项菜单。我希望在选择选项卡时,操作栏中的一个菜单项的行为有所不同

如何在
onOptions ItemSelected(MenuItem项)
方法中获得选项卡位置,以便我可以据此对菜单项进行编码

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

    ActionBar bar = getSupportActionBar();
    bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    ActionBar.Tab Tab1 = bar.newTab();
    ActionBar.Tab Tab2 = bar.newTab();

    Tab1.setText("Tab1");
    Tab2.setText("Tab2");

    Tab1.setTabListener(new MyTabListener());
    Tab2.setTabListener(new MyTabListener());

    bar.addTab(Tab1);
    bar.addTab(Tab2);

}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    Intent newActivity;
    // Handle item selection
    switch (item.getItemId()) {
        case android.R.id.home:
            // app icon in action bar clicked; go home
            newActivity = new Intent(this, Main.class);
            newActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(newActivity);
        return true;
        case R.id.menu_today_date:
                    //if condition here based on tabs selected
            CalendarFragment frag = new CalendarFragment();
            FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
            ft.replace(android.R.id.content, frag);
            ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
            ft.commit();

            return true;
        case R.id.menu_prefs:
            newActivity = new Intent(this, Settings.class);
            startActivityForResult(newActivity, requestCode);
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}


private class MyTabListener implements ActionBar.TabListener
{
    @Override
    public void onTabSelected(Tab tab, FragmentTransaction ft) {
        if(tab.getPosition()==0)
        {
            CalendarFragment frag = new CalendarFragment();
            ft.replace(android.R.id.content, frag);
        }
        else
        {

            ConverterFragment frag = new ConverterFragment();
            ft.replace(android.R.id.content, frag);
        }
    }
    @Override
    public void onTabUnselected(Tab tab, FragmentTransaction ft) {
        // TODO Auto-generated method stub
    }
    @Override
    public void onTabReselected(Tab tab, FragmentTransaction ft) {
        // TODO Auto-generated method stub
    }
}

我无法获得制表符位置,但我就是这样做的:

private int tabSelected = 0;

@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
    if(tab.getPosition()==0)
    {
        tabSelected = 0;
        CalendarFragment frag = new CalendarFragment();
        ft.replace(android.R.id.content, frag);
    }
    else
    {
        tabSelected = 1;
        ConverterFragment frag = new ConverterFragment();
        ft.replace(android.R.id.content, frag);
    }
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    Intent newActivity;
    // Handle item selection
    switch (item.getItemId()) 
        case R.id.menu_today_date:
           FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
           if (tabSelected == 0){
                CalendarFragment frag = new CalendarFragment();
                ft.replace(android.R.id.content, frag);


           }
           else {
                ConverterFragment frag = new ConverterFragment();
                ft.replace(android.R.id.content, frag);
           }

           ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
           ft.commit();

        default:
            return super.onOptionsItemSelected(item);
    }
}