如何从main.xml中检索textview文本

时间:2012-02-06 06:37:26

标签: android

我有以下main.xml布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

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

我试图通过使用以下代码

来检索文本,即@ string / hello
   public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);



  TextView tv= (TextView) findViewById(R.id.textview01);
  String input= tv.getText().toString();

  Log.d("Info",input);

但我无法看到输出。应用程序崩溃,并在String input = tv.getText(

)处出现NULL异常错误

5 个答案:

答案 0 :(得分:4)

您需要致电

setContentView(R.layout.main);

在致电findViewById

之前

答案 1 :(得分:2)

按如下方式更新您的活动代码,

   public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.main); // This line is missing in your code.

  TextView tv= (TextView) findViewById(R.id.textview01);
  String input= tv.getText().toString();

  Log.d("Info",input);

您实际上缺少xml到Activity的映射。

答案 2 :(得分:1)

 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
      setContentView(R.layout.main);


  TextView tv= (TextView) findViewById(R.id.textview01);
  String input= tv.getText().toString();

  Log.d("Info",input);

答案 3 :(得分:1)

  1. 确保您已正确设置视图

    setContentView(R.layout.main);
    
  2. 如果没有这样做,你会得到“tv”变量为null,因为没有加载视图。 2.如果设置了上述内容,则检查strings.xml中是否正确设置了“hello”。

答案 4 :(得分:0)

您收到NullPointerException,因为您在tv中的引用为空。 您没有设置布局,即setLayout(R.layout.main);

super.onCreate(savedInstanceState);之后加入上述行,您的代码就可以使用。