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()
?
yourTextView.setText("New text");
Voir findViewById
et setText
method.
Selon: http://developer.Android.com/reference/Android/widget/TextView.html
TextView view = (TextView) findViewById(R.id.counter);
view.setText("Do whatever");
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
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);
Dans onclick
, prenez l’objet de TextView et définissez le texte souhaité comme suit:
tvOBJECT.setText("your text");
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").