2011-09-08 6 views
3

Comment puis-je ajouter dynamiquement un TextView à cela? Le code commenté ne fonctionne pas.Ajouter dynamiquement un TextView - Android

public class myTextSwitcher extends Activity { 

    private TextView myText; 
    public myTextSwitcher(String string){ 

     //myText = new TextView(this); 
     //myText.setText("My Text"); 
    } 
} 

Répondre

1

Tout d'abord, vous ne devriez pas l'ajouter dans le constructeur, les constructeurs non par défaut sont à peu près inutile pour un Activity. Enfin, vous créez correctement un nouveau TextView mais vous ne l'ajoutez pas n'importe où. Obtenez un certain nombre de layout dans votre affichage de contenu (probablement avec findViewById), et appelez layout.addView(myText) avec elle.

+0

Est-il nécessaire de fournir 'LinearLayout.LayoutParams' pour l'objet de vue de texte' mytext'? –

4

Vous créez une vue de texte et définissez sa valeur, mais vous ne spécifiez pas où et comment elle doit être affichée. Votre objet myText doit avoir un conteneur quelconque qui le rendra visible.

Ce que vous essayez de faire est de mettre en forme dynamiquement une vue. Voir ici pour un good starter article. De l'article:

// This is where and how the view is used 
TextView tv = new TextView(this); 
tv.setText("Dynamic layouts ftw!"); 
ll.addView(tv); 

// this part is where the containers get "wired" together 
ScrollView sv = new ScrollView(this); 
LinearLayout ll = new LinearLayout(this); 
ll.setOrientation(LinearLayout.VERTICAL); 
sv.addView(ll); 
+0

Je vérifie également que vous voulez mettre en forme dynamiquement une vue. Puisque vous commencez avec Android, vous voudrez probablement commencer par faire des mises en page par XML. Les mises en page dynamiques ne sont pas l'endroit pour un débutant. –

0

Avez-vous ajouté la vue de texte à l'activité à l'aide setContentView(myText);

faire cette

myText = new TextView(this); 
myText.setText("foo"); 
setContentView(myText); 
0

dans la méthode OnCreate()

final TextView tv1 = new TextView(this); 
    tv1.setText("Hii Folks"); 
    tv1.setTextSize(14); 
    tv1.setGravity(Gravity.CENTER_VERTICAL); 
    LinearLayout ll = (LinearLayout) findViewById(R.id.lin); 
    ll.addView(tv1); 

Votre activity_main .xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/lin" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center_vertical|center_horizontal" 
    android:orientation="horizontal"> 
</LinearLayout> 
Questions connexes