Android Textview吐出我从未写过的东西

时间:2011-04-27 20:06:16

标签: android

package com.example.helloandroid;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class HelloAndroid extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        TextView tv = new TextView(this);
        tv.setText("Why did it say hello world?");
        setContentView(R.layout.main);
    }
}

我正在关注android SDK网站上的Hello,World教程。当我为tv设置文本时,它永远不会显示。相反,输出是:

Hello World,HelloAndroid!

世界上哪里来的?我从来没有在任何地方写过那些文字......怪异的。

4 个答案:

答案 0 :(得分:1)

检查您的main.xml文件。它很可能是从那里打印出来的。

要在那里进行自己的测试,请将新的TextView添加到main.xml

<TextView android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:text="Your text here" />

(注意:“你的文字在这里”应该真正带到strings.xml文件。)

要输入可编辑的文本字段,请使用EditText字段。

<EditText android:id="@+id/TextId" android:hint="background text"
            android:layout_width="wrap_content" android:layout_height="wrap_content"></EditText>

答案 1 :(得分:1)

TextView tv = new TextView(this);             << create TextView object
tv.setText("Why did it say hello world?");    << set text to it
setContentView(R.layout.main);                << display the view defined in main.xml

scriptocalypse 表示您可以简单地将内容视图设置为 tv ,或者我认为更好的方法是使用main.xml

main.xml中的

有一个TextView,它有一个名为id的属性,它看起来像这样:<TextView android:id="@+id/text"你可以使用这个id来获取TextView对象像这样的xml:

setContentView(R.id.xml);
TextView tv = (TextView)findViewById(R.id.text);
tv.setText("Your text");

要记住三件事:

  1. R.id.text对应android:id="@+id/text"
  2. R.id.text是一个整数,在应用程序构建期间生成,它不是字符串,不能作为字符串进行操作。
  3. 在调用setContentView之前必须调用
  4. findViewById,否则,您将获得null作为findViewById的返回值。

答案 2 :(得分:0)

在创建新的TextView对象之前,应该使用setContentView。另外,您还记得将TextView添加到显示器吗?

 setContentView(tv)

我看到你添加了xml布局,但是你从不添加新创建的TextView

答案 3 :(得分:0)

您正在调用setContentView()并传入对布局的引用,特别是Haphazard所指出的main.xml。如果你想看到你刚刚创建的TextView,你应该能够将变量tv传递给setContentView()方法。

默认的main.xml引用了res /文件夹中strings.xml中的String。在字符串“Hello World”的定义中,这就是您看到“Hello World”的原因。