Как изменить текст TextView, нажав кнопку
Я хочу изменитьTextView
при нажатии Button
, но не понимаю, как правильно это делать.
Это часть моего макета:
<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!" />
и это моя деятельность:
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
// ???
}
});
}
}
что я должен положить внутрь onClick()
способ?
7 ответов
- найти textview по id
- измените текст, вызвав
yourTextView.setText("New text");
Refer findViewById
и setText
методы.
по данным: 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);
}
});
}
}
надеюсь, это послужит вашей потребности
TextView tv = (TextView) v;
tv.setText("My new text");
Edit: Вот ваш обработчик:
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");
}
});
поле TextView посмотреть = (виджет TextView) findViewById, чтобы найти(ИД Р..счетчика);
на onclick
, возьмите объект TextView и установите нужный текст следующим образом:
tvOBJECT.setText("your text");
Java только без версии XML
чтобы сделать более явными:
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);
}
}
протестировано на Android 22.