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