2013-12-09 94 views
0

我試圖開發一個帶有操作欄的android應用程序,我在應用程序中有三個選項卡,問題是當我運行應用程序左選項卡選擇默認值時,我該如何選擇中間的選項卡爲默認選項卡,我想說明的中間選項卡,當用戶運行應用程序,這是我的代碼:Android - 爲操作欄選擇默認選項卡

主營:

public class MainActivity extends SherlockFragmentActivity implements 
    TabListener { 

private ViewPager viewPager; 
private TabsPagerAdapter mAdapter; 
private com.actionbarsherlock.app.ActionBar actionBar; 
private String[] tabs = { "search", "image", "wiki" }; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    viewPager = (ViewPager) findViewById(R.id.pager); 
    actionBar = getSupportActionBar(); 
    mAdapter = new TabsPagerAdapter(getSupportFragmentManager()); 
    actionBar.setHomeButtonEnabled(false); 
    viewPager.setAdapter(mAdapter); 
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

    for (String tab_name : tabs) { 
     actionBar.addTab(actionBar.newTab().setText(tab_name) 
       .setTabListener(this)); 
    } 

    /** 
    * on swiping the viewpager make respective tab selected 
    * */ 
    viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { 

     @Override 
     public void onPageSelected(int position) { 
      actionBar.setSelectedNavigationItem(position); 
     } 

     @Override 
     public void onPageScrolled(int arg0, float arg1, int arg2) { 
     } 

     @Override 
     public void onPageScrollStateChanged(int arg0) { 
     } 
    }); 
} 

@Override 
public void onTabSelected(com.actionbarsherlock.app.ActionBar.Tab tab, 
     android.support.v4.app.FragmentTransaction ft) { 
    viewPager.setCurrentItem(tab.getPosition()); 
} 

@Override 
public void onTabUnselected(com.actionbarsherlock.app.ActionBar.Tab tab, 
     android.support.v4.app.FragmentTransaction ft) { 
} 

@Override 
public void onTabReselected(com.actionbarsherlock.app.ActionBar.Tab tab, 
     android.support.v4.app.FragmentTransaction ft) { 
} 
} 

TabsPagerAdapter:

public class TabsPagerAdapter extends FragmentPagerAdapter { 

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

@Override 
public Fragment getItem(int index) { 

    switch (index) { 
    case 0: 
     return new Search(); 
    case 1: 
     return new Image(); 
    case 2: 
     return new Wiki(); 
    } 

    return null; 
} 

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

} 

回答

0

我不確定,因爲我從來沒有使用過標籤,但我認爲它和列表導航一樣。

您是否嘗試過使用下面的代碼?

actionBar.setSelectedNavigationItem(position); 

在你的情況,位置可能是1