タイトルはちょっと混乱しますが、私は何を書くべきか分かりません。別のクラスで拡張されたフラグメントのビューを取得するには?
私は、アプリケーションの開始(SlidingTutorial)のスライドチュートリアルを公開するためにライブラリを使用しています。問題は、findViewByIdを使ってフラグメント内のビューを見つける必要があることですが、フラグメントのビューからこの呼び出しを派生させる必要があります。私はメソッドonCreateViewを使用する必要がありますが、タイトルで述べたように、フラグメントはTutorialSupportFragment(フラグメントにもかかわらず)から拡張する必要があるため、onCreateViewメソッドをオーバーライドすると、ライブラリの一部のコンポーネントが読み込まれませんでした。
拡張メソッドを破棄しないでこのonCreateViewを使用する方法はありますか?
public class CustomTutorialFragment extends TutorialSupportFragment implements OnTutorialPageChangeListener, CustomTutorialMvpView {
...
私はこれを実行する必要があります。
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
View view = inflater.inflate(getLayoutResId(), container, false);
btNext = (Button) view.findViewById(R.id.btNext);
btSkip = (Button) view.findViewById(R.id.btSkip);
btNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
nextPage();
}
});
btSkip.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
skipTutorial();
}
});
return view;
}
これは私が問題は、私は図書館で作成された以前のものを壊すことなくメソッドをオーバーライドすることができますということだと思い誤差、です。
FATAL EXCEPTION: main
Process: com.dummy.carrefour.mvp, PID: 24342
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.dummy.carrefour.mvp/com.dummy.carrefour.mvp.ui.tutorial.TutorialActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.view.ViewPager.setAdapter(android.support.v4.view.PagerAdapter)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2666)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2727)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1478)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6121)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.view.ViewPager.setAdapter(android.support.v4.view.PagerAdapter)' on a null object reference
at com.cleveroad.slidingtutorial.TutorialImpl.onViewCreated(TutorialImpl.java:97)
at com.cleveroad.slidingtutorial.TutorialSupportFragment.onViewCreated(TutorialSupportFragment.java:146)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1314)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1528)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1595)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:758)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2363)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2149)
at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2103)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2013)
at android.support.v4.app.FragmentController.execPendingActions(FragmentController.java:388)
at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:607)
at android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:178)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1248)
at android.app.Activity.performStart(Activity.java:6699)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2629)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2727)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1478)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6121)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
コードなしで理解することが難しいため、コードを表示できますか? –
投稿、申し訳ありません。見てみましょう。 – MAOL