2015-09-06 2 views
0

Каждый раз, когда я пытаюсь использовать свой очень простой код для Android, я получаю эту проблему. К сожалению, файл .apk остановлен.Android TextView.setText ("") останавливает мое приложение

Когда я удаляю uid.setText ("txt"), приложение запускается нормально.

Моя активность Код

  public class MainActivity extends Activity { 

      @Override 
      protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      TextView uid = (TextView)findViewById(R.id.textView1); 
      uid.setText("txt"); 
      setContentView(R.layout.activity_main); 

Мой XML-файл

<TextView 
    android:id="@+id/textView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/textView2" 
    android:layout_centerHorizontal="true" 
    android:layout_marginBottom="71dp"/> 
+1

Вызов 'setContentView (R.layout.activity_main);' непосредственно после 'super.onCreate()' – skywall

+1

Переместить 'setContentView (R.layout.activity_main);' перед тем, как найти какое-либо представление с помощью 'findViewById' из макета текущей активности –

+0

@ ρяσѕρєяK это работа спасибо – JavaFan

ответ

0

В Android все пользовательский интерфейс написан на XML. Когда начинается действие, ему нужно знать, какой UI-xml отображать для пользователя, поэтому, когда мы вызываем setContentView с файлом макета, этот конкретный xml визуализируется. Причина для вашего приложения для сбоя в том, что вы вызываете метод .setText() в текстовом режиме, но активность android не может понять, какой текст следует ссылаться. И PS, вы можете иметь несколько элементов пользовательского интерфейса с одинаковым идентификатором, но в разных файлах.

Итак, все вместе вызовите метод setContentView() перед ссылкой на любой элемент пользовательского интерфейса.

1

Move setContentView (R.layout.activity_main); вверх.

показано на рисунке код:

@Override 
     protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     TextView uid = (TextView)findViewById(R.id.textView1); 
     uid.setText("txt"); 
Смежные вопросы