2011-01-22 4 views
21

Я работаю над программой для Android. Пользователь нажимает кнопку. Я делаю некоторую математику, и я хотел бы изменить значения, которые у меня есть на моем представлении в некоторых объектах TextView. Может кто-нибудь, пожалуйста, скажите мне, как это сделать в моем коде?Как изменить значение TextView внутри кода Java?

ответ

39

Я полагаю, что это вопрос является продолжением this one.

Что вы пытаетесь сделать? Вы действительно хотите динамически изменять текст в объектах TextView, когда пользователь нажимает кнопку? Вы, конечно, можете сделать это, если у вас есть причина, но, если текст является статическим, он обычно устанавливается в файле main.xml, как это:

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

Строка «@ строка/скорость» относится к записи в файле strings.xml, который выглядит следующим образом:

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

Если вы действительно хотите изменить этот текст позже, вы можете сделать это, используя пример Николая - вы получите ссылку на TextView по используя идентификатор, определенный для него в main.xml, например:


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."); 
13

Сначала нужно найти Button:

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

После этого, вы должны реализовать View.OnClickListener и там вы должны найти TextView и выполнить метод 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"); 
    } 
}); 
Смежные вопросы