Android: TextView не работает

#java #android #textview

#java #Android #textview

Вопрос:

Я новичок в Android deva и Java. Я хочу отобразить текст, но мой приведенный ниже код не работает.

DisplayText.java

 package com.example.DisplayText;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

    public class DisplayText extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            TextView tv2 = (TextView) this.findViewById(R.id.thetext);
            tv2.setText("YO -- ");
            setContentView(R.layout.main);

        }
    }
  

main.xml

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
    <TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    android:id="@ id/thetext"
    />
</LinearLayout>
  

Большое спасибо за любую помощь! 🙂

Комментарии:

1. Вам нужно указать, какой файл макета вы хотите использовать, прежде чем вы сможете получать из него какие-либо представления. В приведенном выше коде вы пытаетесь получить TextView перед вызовом setContentView . Это не сработает, поскольку в системе нет указания, где искать TextView с идентификатором theText. Если вы измените порядок и сначала установите просмотр содержимого, он будет работать.

Ответ №1:

Измените этот код:

 public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            TextView tv2 = (TextView) this.findViewById(R.id.thetext);
            tv2.setText("YO -- ");
            setContentView(R.layout.main);

        }
  

с этим:

 public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            TextView tv2 = (TextView) this.findViewById(R.id.thetext);
            tv2.setText("YO -- ");


        }
  

Ответ №2:

поместить

 setContentView(R.layout.main);
  

перед TextView tv2 = (TextView) this.findViewById(R.id.thetext);

чтобы получить доступ к TextView из main.xml