web-dev-qa-db-fra.com

Comment modifier la valeur TextView dans le code Java?

Je travaille sur un programme Android. Un utilisateur clique sur un bouton Je fais des calculs et je souhaite modifier les valeurs que j'ai sur ma vue dans certains objets TextView. Quelqu'un peut-il s'il vous plaît me dire comment le faire dans mon code?

22
SJS

Je suppose que cette question est une continuation de celui-ci .

Qu'essayez-vous de faire? Voulez-vous vraiment changer dynamiquement le texte dans vos objets TextView lorsque l'utilisateur clique sur un bouton? Vous pouvez certainement le faire, si vous avez une raison, mais si le texte est statique, il est généralement défini dans le fichier main.xml, comme ceci:

<TextView  
Android:id="@+id/rate"
Android:layout_width="fill_parent" 
Android:layout_height="wrap_content" 
Android:text="@string/rate"
/>

La chaîne "@ string/rate" fait référence à une entrée de votre fichier strings.xml qui ressemble à ceci:

<string name="rate">Rate</string>

Si vous voulez vraiment changer ce texte plus tard, vous pouvez le faire en utilisant l'exemple de Nikolay - vous obtiendrez une référence à TextView en utilisant l'id défini pour cela dans main.xml, comme ceci:


final TextView textViewToChange = (TextView) findViewById(R.id.rate);
textViewToChange.setText(
    "The new text that I'd like to display now that the user has pushed a button.");
41
McGlone

Nous devons d’abord trouver une Button:

Button mButton = (Button) findViewById(R.id.my_button);

Après cela, vous devez implémenter View.OnClickListener et y trouver le TextView et exécuter la méthode setText:

mButton.setOnClickListener(new View.OnClickListener {
    public void onClick(View v) {
        final TextView mTextView = (TextView) findViewById(R.id.my_text_view);
        mTextView.setText("Some Text");
    }
});
14
Nikolay Moskvin

Ajoutez d'abord textView dans un fichier xml 

<TextView  
    Android:id="@+id/rate_id"
    Android:layout_width="fill_parent" 
    Android:layout_height="wrap_content" 
    Android:text="@string/what_U_want_to_display_in_first_time"
    />

puis ajoutez un bouton dans le fichier xml avec id btn_change_textView et écrivez ces deux lignes de code dans la méthode onCreate()

Button btn= (Button) findViewById(R.id. btn_change_textView);
TextView textView=(TextView)findViewById(R.id.rate_id):

puis utilisez clickListener() sur l'objet bouton comme ceci

btn.setOnClickListener(new View.OnClickListener {
    public void onClick(View v) {

        textView.setText("write here what u want to display after button click in string");
    }
});
0
Ashutosh