私は最近、Android用のプログラミングを再開し、現在、水平ビューページャーを実装したいアプリに取り組んでいます。これにより、ユーザーは1つのインスタンスで2つのページ間をスワイプして情報を入力/更新し、後のインスタンスでは4つのページ間をスワイプできます入力/更新した情報を表示します。基本的にロールプレイングゲーム用の電子キャラシートを作っています。
私は、水平ビューページャーのこれらのチュートリアルに取り組んでいます: http://mobile.tutsplus.com/tutorials/android/android-user-interface-design-horizo ntal-view-paging/
http://manishkpr.webheavens.com/android-viewpager-example/
私の質問は、私が見たすべてのチュートリアル、h. ビュー ページャーはメイン アクティビティ画面の外で使用されますが、後続の画面の外で水平ビュー ページャーを実装する方法はありますか? メイン画面以外のページで動作するようにコードを実装しようとするたびに、そのページに到達するとすぐにクラッシュしました。
要するに、誰かがメイン以外のページに水平ビュー ページャーをうまく実装したことがありますか? もしそうなら、どのように?
ご理解いただけたかと思いますが、他にご不明な点がございましたら、お気軽にお問い合わせください。
08-24 01:44:34.310: I/ActivityManager(144): pid 15115 から {cmp=com.echaractersheet/.CharacterStats1} を開始 08-24 01:44:34.360: D/AndroidRuntime(15115): VM 08 をシャットダウン-24 01:44:34.360: W/dalvikvm(15115): threadid=1: キャッチされない例外で終了するスレッド (group=0x40a581f8) 08-24 01:44:34.370: E/AndroidRuntime(15115): 致命的な例外: メイン 08 -24 01:44:34.370: E/AndroidRuntime(15115): java.lang.RuntimeException: アクティビティを開始できません ComponentInfo{com.echaractersheet/com.echaractersheet.CharacterStats1}: java.lang.NullPointerException
characterstats.xml:
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/characterstatspager" />
characterstats1.xml と characterstats2.xml は、スワイプしたい 2 つのページです。
CharacterStatsPagerAdapter.java: ...
public class CharacterStatsPagerAdapter extends PagerAdapter {
public int getCount() {
return 2;
}
public Object instantiateItem(View collection, int position) {
LayoutInflater inflater = (LayoutInflater) collection.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int resId =0;
switch (position) {
case 0:
resId = R.layout.characterstats1;
break;
case 1:
resId = R.layout.characterstats2;
break;
}
View view = inflater.inflate(resId, null);
((ViewPager) collection).addView(view, 0);
return view;
}
@Override
public void destroyItem(View arg0, int arg1, Object arg2) {
((ViewPager) arg0).removeView((View) arg2);
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == ((View) arg1);
}
@Override
public Parcelable saveState() {
return null;
}
}
CharacterStats1.java:
CharacterStatsPagerAdapter adapter = new CharacterStatsPagerAdapter();
ViewPager myPager = (ViewPager) findViewById(R.id.characterstatspager);
myPager.setAdapter(adapter);
myPager.setCurrentItem(0);