2012-07-23 13 views
6

これについての情報は見つかりませんでしたが、どのようにプログラムバーでActionBarSherlockのタブを切り替えることができますか?タブのビューがフラグメントされているので、明らかにActionBarSherlockを使用してプログラムでタブを切り替える

Intent intentSecondView = new Intent(this, SecondView.class); 
this.startActivity(intentSecondView); 

しかし、これは動作しません:

は、通常、私はのようなものを使用したいビューを切り替えたいとき。

ActionBarSherlockを使用すると、コードによってタブを切り替える方法はありますか?


これは現在、タブ付きのアクションバーを追加する方法です。私は持っている私のonCreateメソッドで

mViewPager = new ViewPager(this); 
    mViewPager.setId(R.id.pager); 

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

    mTabsAdapter = new TabsAdapter(this, mViewPager); 

    mTabsAdapter.addTab(
      bar.newTab().setText("Fragment 1"), 
      MyFragment1.class, null); 
    mTabsAdapter.addTab(
      bar.newTab().setText("Fragment 2"), 
      MyFragment2.class, null); 

私はタブを作成するために私のAndroidManifestファイルには何も追加されません。それはすべてプログラム的です。私のアプリで

int position = 1; 
getSupportActionBar().setSelectedNavigationItem(position); 

答えて

21

(x)はactionBar.setSelectedNavigationItemを呼び出してみてください。ユーザーがピクチャの1つをクリックすると、そのピクチャは別のタブフラグメントのViewPagerに表示され、setCurrentTabByTag()を使用してそのタブに自動的に切り替わります。

public class EditAlbumTabs extends SherlockFragmentActivity { 
    TabHost mTabHost; 
    TabsAdapter mTabsAdapter; 

    public void onPagerPositionSet(int pagerPosition, String[] imageUrls) { 
     FragmentFlash fragmentFlash = (FragmentFlash)mTabsAdapter.getFragment("flash"); 
     if (fragmentFlash != null) { 
      fragmentFlash.pagerPositionSet(pagerPosition, imageUrls); 
      **mTabHost.setCurrentTabByTag("flash");** 
     } 
    } 

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

    setContentView(R.layout.fragment_tabs_pager); 
    mTabHost = (TabHost)findViewById(android.R.id.tabhost); 
    mTabHost.setup(); 

    mViewPager = (ViewPager)findViewById(R.id.pager); 
    mTabsAdapter = new TabsAdapter(this, mTabHost, mViewPager); 
    mTabsAdapter.addTab(mTabHost.newTabSpec("album").setIndicator("Album"), 
      FragmentAlbumFlashum.class, null); 
    mTabsAdapter.addTab(mTabHost.newTabSpec("flash").setIndicator("Flash"), 
      FragmentFlash.class, null); 
} 
+0

ありがとう。それは働いた!私は最初に 'ActionBar ab = getSupportActionBar();'と 'ab.setSelectedNavigationItem(1);' – w00

+1

を呼び出しました。正しい構文は 'getSupportActionBar()。setSelectedNavigationItem(1);' tho ...です。 – shkschneider

0

私は写真のアルバムを持っている一つのタブフラグメントを持っている:

関連する問題