Pourquoi mon onCreateView méthode appelée deux fois?

Lors du débogage d'une autre question, j'ai réalisé que la onCreateView méthode de l'une de mes activités a été appelé à deux reprises. Je suis nouveau en programmation et je n'ai pas de comprendre pleinement comment android appelle ces méthodes lors de la activité charge, mais il ne semble pas juste pour moi, qu'il serait appelé deux fois. En éliminant la plupart de mon code, je vois encore mon System.out message deux fois.

public class AddCourse extends ActionBarActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add_course);

        if (savedInstanceState == null) {
            getSupportFragmentManager().beginTransaction()
                .add(R.id.container, new AddCourseFragment()).commit();
        }
    }

    public static class AddCourseFragment extends Fragment {

        View rootView;

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
            rootView = inflater.inflate(R.layout.fragment_add_course,
                container, false);
                        System.out.println("I see this TWICE!!!!");
            return rootView;
        }       
    }
}

C'est presque exactement comme mon activité principale la mise en œuvre, mais que l'on ne doit pas passer par onCreateView deux fois. Pensées?

Mon activity_add_course xml a été demandé...

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

     <fragment android:name="com.NsouthProductions.gradetrackerpro.AddCourse$AddCourseFragment"
         android:id="@+id/AddCourseFrag" 
         android:layout_width="match_parent"
         android:layout_height="match_parent" />
</LinearLayout>
pouvez-vous partager votre activity_add_course fichier de mise en page?
J'ai ajouté le fichier de mise en page. Cela se produit parce que le fichier de mise en page fondamentalement appelle mon fragment de classe? Comment dois-je cesser d'être appelé deux fois?
on dirait que vous êtes en train d'ajouter le fragment de deux fois. Si vous le déclarer dans le fichier xml, alors vous n'avez pas besoin de l'ajouter par programme ainsi.
hmm si la partie de mon code dois-je l'enlever? Comment puis-je traiter un null savedInstanceState sans appel de mon fragment deux fois? Désolé, je suis encore à essayer de comprendre quelques-uns de ces principes de base.

OriginalL'auteur NSouth | 2014-04-08