Comment ajouter par programme en vue ViewFlipper
J'ai la suite en page principale:
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical">
<ViewFlipper android:id="@+id/viewstack"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<!-- Here I want to add my views which are located in separated xml files. -->
</ViewFlipper>
</LinearLayout>
Ici est de donner l'exemple de mon point de vue:
view_url.xml
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:gravity="center">
<EditText android:text="@+id/EditText01"
android:id="@+id/EditText01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btnGenerate"
android:text="Generate"/>
</LinearLayout>
view_text.xml
<LinearLayout android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical">
<EditText android:text="@+id/EditText01"
android:id="@+id/EditText01"
android:layout_height="wrap_content"
android:contentDescription="Enter your text here"
android:layout_width="fill_parent"
android:height="200dp"/>
</LinearLayout>
Je suis en train d'ajouter des affichages:
viewstack = (ViewFlipper) findViewById(R.id.viewstack);));
View viewText = (View) findViewById(R.layout.view_text);
viewstack.addView(viewText); < -- Emulator is crashing at this line
View viewUrl = (View) findViewById(R.layout.view_url);
viewstack.addView(viewUrl);
Je n'ai aucune idée de quel est le problème avec mon code. J'ai décidé de mettre tous mes points de vue dans un fichier, mais je veux toujours savoir comment corriger mon code initial.
OriginalL'auteur barmaleikin | 2010-05-03
Vous devez vous connecter pour publier un commentaire.
Yout
View viewUrl = (View) findViewById(R.layout.view_url);
est très mauvais. findViewById est un peu comme le get(String key) méthode le répertoire où se trouve votre répertoire est votre affichage en cours ou de l'activité. Il ne regarde que l'élément avec l'Id de sous des enfants.Pour créer des objets Java de fichiers XML que vous devez utiliser, vous devez utiliser le LayoutInflater. Qui est assez simple, hors de ce que vous obtenez l'objet que vous pouvez passer à viewstack.addView(..) de la méthode.
Une autre façon d'y parvenir serait simplement d'inclure les autres fichiers XML dans le premier, à l'aide de l' inclure, fusion balises, ou le ViewStub. Selon vos besoins, ceux-ci pourraient ne pas être une option, mais ce que vous décrivez, ils devraient être, et vous devriez les utiliser au lieu de le faire par programmation parce que c'est juste plus propre de cette façon.
OriginalL'auteur Mart Roosmaa
peut-être que cela aide:
OriginalL'auteur Mirodil
Son nom suggère qu'Il recherche par id pas en fonction de la disposition.Vous devez comprendre la différence entre la disposition et id.utilisation comme celui de la Vue v=(Vue)findViewById(R. id.your_view_id);
OriginalL'auteur
Manière la plus simple d'ajouter en gonflant Vue. Voici quelques petit extrait où vous pouvez trouver de référence.
OriginalL'auteur Kuls