5.2.3 另一个Hello World!
在这一节中,您将要创建另一个Hello World!应用程序。不过,这次您需要编写用户界面的代码而不是使用xml文件--您将会做许多实际的事情。第一步请移除main.xml中的TextView的代码,这样我们得到一个空的程序框架。
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello World, HelloWorldText"
/>
移除了TextView代码以后,您的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"
>
</LinearLayout>
现在您已经有了一个干净的main.xml文件,您可以看是加上代码来在屏幕上显示“Hello World!” 了。打开文件HelloWorldText.java 并且删除下面的行。
setContentView(R.layout.main);
注:您仍然需要为程序设置一个ContentView,不过它的实现将稍有不同,所以现在最好删除整个语句。
这一行使用setContentView()函数将main.xml的内容绘制到屏幕上。既然您不再使用main.xml定义一个TextView,因此您不需要将它设置为您的视图。取而代之的是,您将代码中建立在TextView。
下一步骤是从android.widget中导入TextView的Package。这将使您得以访问TextView并使用它创建一个实例。将下面的代码放在HelloWorldText.java文件的顶部
import android.widget.TextView;
现在,创建一个TextView的实例。通过创建TextView的实例,您可以使用它在屏幕上显示文字不用直接修改main.xml。将以下
代码放在OnCreate()语句之后:
TextView HelloWorldTextView = new TextView(this);
注:TextView需要一个当前的上下文句柄作为参数。将this传给TextView以便于上下文关联起来。只要您按照SDK中层次结构来定义,那么HelloWorldText就可以扩展Activitu,进而扩展ApplicationContext中,从而有序的扩展了语境。
前面的行创建了一个名为HelloWorldTextView的TextView的实例。并且被传递了this的上下文以完整的实例化。
现在TextView已经定义了,您可以加入文字。以下代码将“Hello World!”指定给TextView。
HelloWorldTextView.setText("Hello World!");
虽然TextView已经被建立起来并且包含了您想显示的文字信息,但是,简单的将“Hello World!” 传给TextView仍无法在屏幕上显示出任何东西。如之前探讨过的那样,您还需要设置ContentView,参见以下的代码:
setContentView(HelloWorldTextView);
这一行,您将您的TextView作为参数传给了setContentView函数。
以上的三行代码完成了您的Hello World程序。您创建了一个TextView,将您的文字指定给它,然后再将它设置到屏幕。所有的事情都考虑到了,它们看起来根本不复杂。
您的HelloWorldText.java文件内容看起来应是这样:
package android_programmers_guide.HelloWorldText;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class HelloWorldText extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
/**Hello World JFD */
/**BEGIN */
/**Create TextView */
TextView HelloWorldTextView = new TextView(this);
/**Set text to Hello World */
HelloWorldTextView.setText("Hello World!");
/**Set ContentView to TextView */
setContentView(HelloWorldTextView);
/**END */
现在编译并在Anroid模拟器中运行您的新的Hello World!程序。选择Run | Run或者按下CTRL-F11开始运行吧。下面的插图显示了这一程序的运行结果。
您刚刚创建了您的第一个完整的Android Activity。这个小的项目展示了一个相当常见的Hello world!程序的执行。接下来的节会使用一些略有不同的方式来实现Hello World! 我们将使用图形。