0

Android Wizard を使用してアプリを作成し、ViewPager3 つのフラグメントすべてを含めるために a を使用しました。メイン アクティビティは「activity_main.xml」に含まれており、 が含まViewPagerれていPagerTitleStripます。私の MainActivity はFragmentActivityfrom サポート ライブラリを拡張します。

Android Developersの複数画面のサポートを確認しました。「layout-sw600dp」というフォルダーを作成し、そこに別の「activity_main.xml」を追加しました。の中にフラグメントを追加しましたLinearLayout。これを 7 インチ タブレットで実行すると、この行の NPE でアプリ フォースが終了しますmViewPager.setAdapter(mSectionsPagerAdapter);

sw600dp フォルダーから xml を呼び出しているため、ここでこの NPE を取得することは理解していますが、タブレットの単一ビューで複数のフラグメントを指定するにはどうすればよいですか?

ヘルプやポインタをいただければ幸いです。

編集 - いくつかのソースコードを追加し、投稿を短くするために関連データのみを保持しようとしました

以下に示すように、ほとんどのコードはウィザード/adt-plugin によって生成されます。

レイアウト/アクティビティ_main.xml

<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"/>

レイアウト-sw600dp/activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<fragment
    android:id="@+id/fragment_one"...
<fragment
    android:id="@+id/fragment_two"...

MainActivity.java

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Create the adapter that will return a fragment for each of the three primary sections
    // of the app.
    mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());

    // Set up the action bar.
    final ActionBar actionBar = getActionBar();
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    // Set up the ViewPager with the sections adapter.
    mViewPager = (ViewPager) findViewById(R.id.pager);
    mViewPager.setAdapter(mSectionsPagerAdapter);

    // When swiping between different sections, select the corresponding tab.
    // We can also use ActionBar.Tab#select() to do this if we have a reference to the
    // Tab.
    mViewPager.setOnPageChangeListener(...
4

1 に答える 1