1

FrameLayoutページ化された「ウィザード」ビューでアダプターにビューを提供するために拡張するクラスがあります。通常、フラグメントを a に追加するにはFrameLayout、単に使用します

getSupportFragmentManager().beginTransaction().replace()

私のフラグメントをレイアウトに追加します。ただし、ここで行うようにフラグメントを追加しようとすると:

public class ReviewPreviousInspectionStep extends FrameLayout implements IWizardStep {
    private IWizardStepStatusChangedListener listener;
    private FragmentActivity activity;

    public ReviewPreviousInspectionStep(FragmentActivity activity) {
        super(activity);

        this.activity = activity;
        LayoutInflater.from(activity).inflate(R.layout.review_previous_inspection, this, true);

        InspectionHistoryFragment inspectionHistoryFragment = new InspectionHistoryFragment();
        inspectionHistoryFragment.setRetainInstance(true);

        activity.getSupportFragmentManager().beginTransaction()
                .replace(R.id.historyFragmentContainer, inspectionHistoryFragment, "historyFragment")
                .addToBackStack("historyFragment")
                .setTransition(FragmentTransaction.TRANSIT_ENTER_MASK)
                .commit();
    }

    //snip
}

FragmentActivity繰り返しますが、このビューは、メソッド内のアダプターからアクティビティ (から拡張するように設定したもの) に追加されgetViewます。

これを実行すると、次の例外が発生します。

 Caused by: java.lang.IllegalArgumentException: No view found for id 0x7f0a002d for fragment InspectionHistoryFragment{41983b08 #0 id=0x7f0a002d historyFragment}
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:864)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1080)
        at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:622)
        at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1416)
        at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:505)
        at roboguice.activity.RoboFragmentActivity.onStart(RoboFragmentActivity.java:60)
        at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1163)
        at android.app.Activity.performStart(Activity.java:5018)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2032)
        ... 11 more

この方法でカスタム コントロールにフラグメントを追加する方法はありますか?

4

0 に答える 0