Android – установка текста в TextView

В настоящее время я изучаю андроид для школьного проекта, и я не могу понять, как динамически устанавливать текст в TextView.

Вот мой код:

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_enviar_mensaje); err = (TextView)findViewById(R.id.texto); err.setText("Escriba su mensaje y luego seleccione el canal."); } 

В настоящее время это не работает, и я не могу найти способ заставить его работать …

Любая помощь будет значительно решена … Спасибо, Хосе.

EDIT: вот Activity_enviar_mensaje.xml

  ...  ...  

Не работая, я имею в виду, что отображаемый текст не меняется в любой момент …

В вашем макете XML:

  

Затем в вашем classе активности:

 // globally TextView myAwesomeTextView = (TextView)findViewById(R.id.myAwesomeTextView); //in your OnCreate() method myAwesomeTextView.setText("My Awesome Text"); 

Вставьте этот код в свой XML

  

Вставьте этот код в свой файл JAVA

// Объявление компонентов, таких как TextView Global, является хорошим кроликом

 TextView mTextView = (TextView) findViewById(R.id.textview1); 

// Поместите это в OnCreate

 mTextView.setText("Welcome to Dynamic TextView"); 

Ну, @+id/listaVista ListView обращается после @+id/texto и поверх него. Итак, измените ListView с:

 android:layout_below="@+id/editText1" 

чтобы:

 android:layout_above="@+id/texto" 

Кроме того, поскольку список отображается после textview, я нахожу опасным иметь android:layout_alignRight="@+id/listaVista" в TextView. Поэтому удалите его и найдите другой способ выравнивания.

EDIT Взяв второй взгляд на ваш макет, я думаю, что это то, что вы действительно хотите:

        

Почему бы вам не попытаться назначить содержимое текста onStart (), а не onCreate ()

Попробуй это:

 TextView err = (TextView)findViewById(R.id.text); 

Убедитесь, что вы импортируете TextView.

У меня была аналогичная проблема. Оказывается, у меня было два объекта TextView с тем же ID. Они были в разных файлах просмотра, и поэтому Eclipse не дал мне ошибку. Попробуйте переименовать свой идентификатор в TextView и посмотрите, не устранит ли это вашу проблему.

в вашем файле activity_main.xml вставьте этот код:

   

и перейдите в папку res-> values-> strings.xml, вставьте код ниже с кодом, который уже существует:

  Escriba su mensaje y luego seleccione el canal. 

приведенный выше код означает, что вы создали текстовое представление с id: name (android: id = “@ + id / name”) и присвоили этому textview строке с именем идентификатора (android: text = “@ string / name”) в strings.xml вы используете это имя идентификатора для назначения текста,

Исправьте следующую строку:

 err = (TextView)findViewById(R.id.texto); 

чтобы:

 err = (TextView)findViewById(R.id.err); 

В файле макета.

  

В действии

 TextView myTextView = (TextView)findViewById(R.id.myTextView); myTextView.setText("Hello World!"); 

В xml используйте это:

  

В Управлении определите представление:

 Textview textView=(TextView)findViewById(R.id.textView); textView.setText(getResources().getString(R.string.txt_hello)); 

В строковом файле:

 Hello 

Вывод: Привет

Это должно сделать трюк:

 TextView.setText("test"); 

Поскольку вы предоставили статический текст

err.setText("Escriba su mensaje y luego seleccione el canal.");

Он не изменится, он останется таким же.

Пример для динамического текста для текстового представления:

 MainActivity.java package com.example.dynamictextview; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class MainActivity extends Activity { int count = 0; Button clickMeBtn; TextView dynamicText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); clickMeBtn = (Button) findViewById(R.id.button_click); dynamicText = (TextView) findViewById(R.id.textview); clickMeBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { count++; dynamicText.setText("dynamic text example : " + count); } }); } } For activity_main.xml     

В XML-файле,

  

В файле активности Java,

 public class MainActivity1 extends Activity { TextView t1; public void onCreate(Bundle onSavedInstance) { setContentView(R.layout.xmlfilename); t1 = (TextView)findViewbyId(R.id.textview); } } 

сначала вы должны создать объект для текстового вида TextView show_alter

 show_alert = (TextView)findViewById(R.id.show_alert); show_alert.setText("My Awesome Text"); 

Вы должны использовать библиотеку ButterKnife http://jakewharton.github.io/butterknife/

И используйте его как

 @InjectView(R.id.texto) TextView err; 

в методе onCreate

 ButterKnife.inject(this) err.setText("Escriba su mensaje y luego seleccione el canal."); 

Вы можете установить строку в текстовом виде программно, как показано ниже.

 TextView textView = (TextView)findViewById(R.id.texto); err.setText("Escriba su mensaje y luego seleccione el canal."); 

или

 TextView textView = (TextView)findViewById(R.id.texto); err.setText(getActivity().getResource().getString(R.string.seleccione_canal)); 

Вы можете установить строку в xml, как показано ниже.

  

или

  

Ваш код в порядке, вы загружаете .xml, который содержит TextView используя setContentView() :

  setContentView(R.layout.activity_enviar_mensaje); 

а затем получить ссылку TextView внутри activity_enviar_mensaje.xml и установить текст:

 err = (TextView)findViewById(R.id.texto); err.setText("Escriba su mensaje y luego seleccione el canal."); 

Проблема в том, что ваш TextView скрыт ListView :

введите описание изображения здесь

В вашем макете. Ваше Texto не должно содержать (android: text = …). Я бы удалил эту строку. Либо сохраните строку Java ИЛИ (android: text = …)

Перейдите в свой ActivityMain и установите текст, добавив виджет из раздела виджетов и вручную изменив текст, выбрав и напечатав.

Interesting Posts
Давайте будем гением компьютера.