web-dev-qa-db-fra.com

Comment créer un simple Android TextView et y afficher du texte avec du code Java?

J'ai créé un exemple de projet et exécuté "Hello Android Application" dans Eclipse.

J'ai appris qu'une Textview peut être créée de deux manières: en utilisant une balise XML ou en utilisant du code Java.

Par défaut, j'ai un Textview disant "Hello world" dans mon exemple de projet. Je souhaite créer une vue Textview à l'aide de code Java et y afficher un message.

J'ai beaucoup cherché, mais je suis incapable de comprendre les étapes et les paramètres de disposition mentionnés dans le code.

Voici ce que j'ai fait:

import Android.app.Activity;
import Android.view.Menu;
import Android.view.ViewGroup;
import Android.widget.*;
import Android.view.View;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        LinearLayout.LayoutParams params = 
                new LinearLayout.LayoutParams( 
                   ViewGroup.LayoutParams.WRAP_CONTENT, 
                   ViewGroup.LayoutParams.WRAP_CONTENT, 0.0F);

        TextView tx= new TextView(this);
//      tx.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
        tx.setText("Android APP");
        lay
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}

De plus, je ne sais pas comment ajouter cette vue de texte dans addView().

C'est mon activity_main.xml:

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:tools="http://schemas.Android.com/tools"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    tools:context=".MainActivity" >
</RelativeLayout>

Une solution étape par étape me serait utile et tout bon lien de tutoriel serait appréciable. Merci d'avance!

7
SachiN Ware.

Utiliser ce code, Créer une vue texte et définir les paramètres de mise en page 

TextView dynamicTextView = new TextView(this);
dynamicTextView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
dynamicTextView.setText(" Hello World ");

ajouter cette textview à la disposition principale 

mainlayout.addView(dynamicTextView);
9

Fichier .xml

<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:tools="http://schemas.Android.com/tools"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:paddingBottom="@dimen/activity_vertical_margin"
    Android:paddingLeft="@dimen/activity_horizontal_margin"
    Android:paddingRight="@dimen/activity_horizontal_margin"
    Android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.demo.MainActivity" >

    <TextView
        Android:id="@+id/textView1"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"/>

</LinearLayout>

Fichier .Java

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String name="Prakash Gajera";
        TextView tv=(TextView)findViewById(R.id.textView1);
        tv.setText(name);
    }
2
Prakash Gajera

copiez et collez ce code en espérant que cela vous aidera.

import Android.app.Activity;
import Android.view.Menu;
import Android.view.ViewGroup;
import Android.widget.*;
import Android.view.View;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

   LinearLayout ll = new LinearLayout(this);

    TextView tx= new TextView(this);
    tx.setText("Android APP");
    ll.addView(tx);

    setContentView(ll);


}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

 }
0
IPL10

ajoutez le textView au linearlayout comme ceci . linearLayout.addView (textView).

Avant de créer une instance pour la représentation linéaire.

0
Shriram

Il est recommandé d’utiliser XML pour définir les dispositions. Ne créez Views que lorsque vous devez les créer dynamiquement. 

Si vous voulez vraiment créer TextViews par code, vous devez avoir une référence à la disposition parente. Ainsi, au lieu de définir directement la vue du contenu sur une présentation XML, vous devez gonfler la présentation XML, puis définir la vue du contenu sur View. Exemple:

View view = LayoutInflater.from(this).inflate(R.layout.activity_main, null);
setContentView(view);

LinearLayout.LayoutParams params = 
                new LinearLayout.LayoutParams( 
                   ViewGroup.LayoutParams.WRAP_CONTENT, 
                   ViewGroup.LayoutParams.WRAP_CONTENT, 0.0F);

TextView tx= new TextView(this);
//      tx.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
tx.setText("Android APP");

view.addView(tx); //here the textview is attached to the parent
0
Mark Buikema

Code:

TextView textView = new TextView(this);
textView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
textView.setText("Test");

mainlayout.addView(textView );
0
Yashdeep Patel

essaye ça 

import Android.app.Activity;
import Android.view.Menu;
import Android.view.ViewGroup;
import Android.widget.*;
import Android.view.View;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        LinearLayout layout = (LinearLayout)findViewById(yourlayoutid from xml file);
        LinearLayout.LayoutParams params = 
                new LinearLayout.LayoutParams( 
                   ViewGroup.LayoutParams.WRAP_CONTENT, 
                   ViewGroup.LayoutParams.WRAP_CONTENT, 0.0F);

        TextView tx= new TextView(this);
//      tx.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
        tx.setText("Android APP");
        layout.add(tx);


    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

}
0
Jitesh Dalsaniya

En supposant que vous ayez une disposition racine dans le fichier .xml avec l'id "my_root"

LinearLayout my_root = (LinearLayout) findViewById(R.id.my_root);

Créer une nouvelle mise en page:

LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL); 

Créer un TextView:

TextView textView = new TextView(this);

Définir du texte:

textView.setText("some text");

Ajoutez votre TextView à la mise en page:

layout.addView(textView);

Enfin, ajoutez votre mise en page à la mise en page racine:

my_root.addView(layout);
0
ottse

Conception

 <TextView
    Android:id="@+id/textview"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"/>

Java

TextView tv = findViewById(R.id.textview);
tv.setText("Kirubha");
0
kirubha sankar