?
?更改与显示文字标签— TextView标签的使用
?范例说明
前一章写了HelloWorld之后,一直觉得没有写半行代码对不起自己,所以在本章人机界面一开始,则延续HelloWolrd的气势,进行与TextView文字标签的第一次接触。在此范例中,将会在Layout中创建TextView对象,并学会定义res/values/strings.xml里的字符串常数,最后通过TextView的setText方法,在预加载程序之初,更改TextView文字。
运行结果
? <v:imagedata src="file:///C:\DOCUME~1\DAVIDL~1\LOCALS~1\Temp\msohtml1\01\clip_image004.png" o:title="3-1" /></v:shape>
范例程序
src/irdc.ex03_01/EX03_01.java
主程序示范以setText方法,输出String类型的字符串变量。
package irdc.ex03_01;
?
import android.app.Activity;
import android.os.Bundle;
?
/*必须引用widget.TextView才能在程序里声明TextView对象*/
import android.widget.TextView;
?
public class EX03_01 extends Activity
{
? /*必须引用widget.TextView才能在程序里声明TextView对象*/
? privateTextView mTextView01;
?
? /**Called when the activity is first created. */
?@Override
? publicvoid onCreate(Bundle savedInstanceState)
? {
??? super.onCreate(savedInstanceState);
???
??? /* 载入main.xml Layout,此时myTextView01:text为str_1 */
???setContentView(R.layout.main);
???
??? /* 使用findViewBtId函数,利用ID找到该TextView对象 */
??? mTextView01 = (TextView)findViewById(R.id.myTextView01);
???
??? Stringstr_2 = "欢迎来到Android的TextView世界...";
??? mTextView01.setText(str_2);
? }
}
res/layout/main.xml
以android:id命名TextView的ID为mTextView01;在较旧的版本写法与1.0的不同,请特别留意。
<?xml version="1.0"encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/widget35"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>?
<TextView
android:id="@+id/myTextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/str_1"
android:layout_x="61px"
android:layout_y="69px"
>?
</TextView>
</AbsoluteLayout>
扩展学习
TextView里的setText方法支持以下多态构造方法:
public final voidsetText(CharSequence text)
public final void setText(int resid)
public void setText(CharSequence text,TextView.BufferType type)
public final void setText(int resid,TextView.BufferType type)
public final void setText(char[] text, intstart, int len)
在此,以最后setText(char[]text, int start, int len) 为例,第一个参数为char数组作为输出依
据,第二个参数为从哪一个元素索引开始选取,第三个参数则为要取出多少个元素,请看以下的例子:
char char_1[] = new char[5];
char_1[0] = 'D';
char_1[1] = 'a';
char_1[2] = 'v';
char_1[3] = 'i';
char_1[4] = 'd';
mTextView01.setText(char_1,1,3);
如上述程序所示,输出的结果是“avi”,因为从第1个元素索引开始,共取3个元素;最后则要提醒你,TextView.setTextView不支持HTML TAG的输出,所以即便写成这样:
mTextView01.setText("<ahref=\"http://shop.teac.idv.tw/MyBlog/\">戴维的博客</a>");
实际输出时,也就是纯文本而已,并不会作HTMLTAG的转换。但若撇开HTMLTAG之外(如“<”开头的标记),在TextView里加上了android:autoLink="all",那么正文中若有网址(http://),是可以被显示的,以下这个范例就交给你自己实现看看。
<TextView?xmlns:android="http://schemas.android.com/apk/res/android"
?android:layout_width="fill_parent"
?android:layout_height="wrap_content"
? android:autoLink="all"
?android:text="请访问戴维的博客:http://shop.teac.idv.tw/MyBlog/"
/>
?
?
具体代码在附件。欢迎讨论。
?
在啃