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!
世界上哪里来的?我从来没有在任何地方写过那些文字......怪异的。
答案 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");
要记住三件事:
R.id.text
对应android:id="@+id/text"
。R.id.text
是一个整数,在应用程序构建期间生成,它不是字符串,不能作为字符串进行操作。setContentView
之前必须调用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”的原因。