web-dev-qa-db-ja.com

Android Studioのデフォルトの「タブ付きアクティビティ」、フラグメントをスワイプする方法は?

完全な初心者はこちら。

新規プロジェクトウィザードのデフォルトの「タブ付きアクティビティ」を使用しました。

3つの異なるフラグメントをスワイプして取得しようとしていますが、プログラムにそれを実行するように指示する場所がわかりません。それらを配列としてロードしますか?はいの場合、どこで実行する必要がありますか?また、さまざまなフラグメントをインスタンス化するにはどうすればよいですか?

ポインタやソリューションは非常に高く評価されています。

10
itsauser

方法は次のとおりです。 タブアクティビティチュートリアル

5
Godnatt

タブに基づいてフラグメントを呼び出すことができるページャーアダプターを作成できます。

public class TabsPagerAdapter extends FragmentPagerAdapter {

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

@Override
public Fragment getItem(int index) {

    switch (index) {
    case 0:
        // Top Rated fragment activity
        return new TopRatedFragment();
    case 1:
        // Games fragment activity
        return new GamesFragment();
    case 2:
        // Movies fragment activity
        return new MoviesFragment();
    }

    return null;
}

@Override
public int getCount() {
    // get item count - equal to number of tabs
    return 3;
}

}

メインアクティビティのonCreateメソッドでタブの値を初期化して、タブを機能させる

private String[] tabs = { "Top Rated", "Games", "Movies" };
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Initilization
    viewPager = (ViewPager) findViewById(R.id.pager);
    actionBar = getActionBar();
    mAdapter = new TabsPagerAdapter(getSupportFragmentManager());

    viewPager.setAdapter(mAdapter);
    actionBar.setHomeButtonEnabled(false);
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);        

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

}

2
Sushil

この質問が古いことは知っていますが、うまくいけば誰かを助けることができます。 Android=ウィザードが不完全なテンプレートを提供していたようですが、これは私にとっても本当に不満でした。

いずれかの方法、

fragment_main.xml、TextViewにテキストを追加すると、コンテンツがあるため、ページが表示されます。

<TextView Android:id="@+id/section_label" Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:text="Hello World" />
1
Tha Leang