web-dev-qa-db-fra.com

Comment changer le texte d'un TextView en appuyant sur un bouton

Je veux changer le caractère de TextView en appuyant sur Button, mais je ne comprends pas comment le faire correctement.

Cela fait partie de ma mise en page:

<TextView Android:id="@+id/counter"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:text="Text" />
<Button Android:id="@+id/button"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:text="Change text!" />

Et voici mon activité:

public class Click extends Activity {
    protected void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.main);
        final Button button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Perform action on click
                // ???
            }
        });
    }
}

Que dois-je mettre dans la méthode onClick()?

11
Roman
  1. Trouver la vue texte par identifiant
  2. Changez le texte en appelant yourTextView.setText("New text");

Voir findViewById et setText method.

12
chedine

Selon: http://developer.Android.com/reference/Android/widget/TextView.html

TextView view = (TextView) findViewById(R.id.counter);
view.setText("Do whatever");
15
Gasim
import Android.app.Activity;
import Android.os.Bundle;
import Android.view.View;
import Android.widget.Button;

public class Click extends Activity {
int i=0;
    protected void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.main);
        final TextView mTextView = (TextView) findViewById(R.id.counter) 
        mTextView.setText("hello "+i);

        final Button button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Perform action on click
              i=i+1;  
              mTextView.setText("hello "+i);
            }
        });
    }
}

J'espère que cela répond à vos besoins

10
Azhar Shaikh
TextView tv = (TextView) v;
tv.setText("My new text");

Edit: Voici votre gestionnaire:

button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            //TextView tv = (TextView) v; //code corrected
            TextView tv= (TextView) findViewById(R.id.counter);
            tv.setText("My new text");
        }
});

Vue TextView = (TextView) findViewById (R.id.counter);

3
Vikas

Dans onclick, prenez l’objet de TextView et définissez le texte souhaité comme suit:

tvOBJECT.setText("your text");
0
user2342517

Java seulement pas de version XML

Pour rendre les choses plus explicites:

import Android.app.Activity;
import Android.os.Bundle;
import Android.view.View;
import Android.widget.Button;
import Android.widget.LinearLayout;
import Android.widget.TextView;

public class Main extends Activity {
    private int i;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.i = 0;

        final TextView tv = new TextView(this);
        tv.setText(String.format("%d", this.i));

        final Button button = new Button(this);
        button.setText("click me");
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Main.this.i++;
                tv.setText(String.format("%d", Main.this.i));
            }
        });

        final LinearLayout linearLayout = new LinearLayout(this);
        linearLayout.addView(button);
        linearLayout.addView(tv);
        this.setContentView(linearLayout);
    }
}

Testé sur Android 22.

Vous pouvez le faire avec la méthode setText ("n'importe quoi").

0
Zwiebel