我们写了HelloAndroid 之后,一直觉得没有写半行代码对不起自己,所以本节,我们将在HelloAndroid 基础之上,进行与TextView 文字标签的第一次接触.在此例中,将会在Layout 中创建TextView 对象,并学会定义res/values/string.xml 里的字符串常数,最后通过TextView 的setText 方法,在预加载程序之初,更改TextView 文字.
首先看一下运行结果如下图:
首先"欢迎来到魏祝林的博客"这几个字是从什么地方来的呢,我们是在res->values->string.xml里面加了如下一句(黑体):
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, HelloAndroid!</string>
<string name="app_name">HelloAndroid</string>
<string name="textView_text">欢迎来到魏祝林的博客</string>
</resources>
而加载"欢迎来到魏祝林的博客"是在main.xml (定义手机布局界面的)里加入的,如下面代码,其中我们闺将@string/hello 改成了@string/textView_text .
<?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/textView_text"
/>
</LinearLayout>
这样我们运行HelloAndroid.java时,手机画面里将显示"欢迎来到魏祝林的博客"的欢迎界面,貌似我们又是没有写代码,只是在.xml加了一两行搞定,对习惯了编程的同学,感觉有点不适应.其实在HelloAndroid.java写代码也可以完全达到一样的效果.
在这里我们首先将main.xml回归到原样在原样的基础上加上一行见下方(黑体行)这里ID是为了在Java类里,找到TextView对象,并且可以控制它:
<?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:id="@+id/myTextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
</LinearLayout>
在主程序HelloAndroid.java里代码如下:
package com.android.test;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class HelloAndroid extends Activity {
private TextView myTextView;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//载入main.xml Layout,此时myTextView:text为hello
setContentView(R.layout.main);
//使用findViewById函数,利用ID找到该TextView对象
myTextView = (TextView)findViewById(R.id.myTextView);
String welcome_mes = "欢迎来到魏祝林的博客";
//利用setText方法将TextView文字改变为welcom_mes
myTextView.setText(welcome_mes);
}
}
两种方法都可以达到一样的效果,不过我在此建议用第一种比较规范一点.这一节就到此为至!!下一节我们将讲一下Android五大布局.希望大家继续关注~
注意:
1.setContentView(R.layout.main); 表示加载res/layout/main.xml布局文件的内容呈现在模拟器中
2.myTextView = (TextView)findViewById(R.id.myTextView); 在布局文件中查找id为myTextView的控件,并将其强转为TextView.