*省天珑书局畅销榜排名第一:《Goolge Android SDK开发范例大全》中的一个实例解析

*天珑书局畅销榜排名第一:《Goolge Android SDK开发范例大全》中的一个实例解析


 

 更改与显示文字标签 TextView标签的使用

  范例说明

前一章写了Hello World之后,一直觉得没有写半行代码对不起自己,所以在本章人机界面一开始,则延续Hello Wolrd的气势,进行与TextView文字标签的第一次接触。在此范例中,将会在Layout中创建TextView对象,并学会定义res/values/strings.xml里的字符串常数,最后通过TextViewsetText方法,在预加载程序之初,更改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对象*/

  private TextView mTextView01;

 

  /** Called when the activity is first created. */

  @Override

  public void onCreate(Bundle savedInstanceState)

  {

    super.onCreate(savedInstanceState);

   

    /* 载入main.xml Layout,此时myTextView01:textstr_1 */

    setContentView(R.layout.main);

   

    /* 使用findViewBtId函数,利用ID找到该TextView对象 */

    mTextView01 = (TextView) findViewById(R.id.myTextView01);

   

    String str_2 = "欢迎来到AndroidTextView世界...";

    mTextView01.setText(str_2);

  }

}

res/layout/main.xml

android:id命名TextViewIDmTextView01;在较旧的版本写法与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 void setText(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, int start, 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("<a href=\"http://shop.teac.idv.tw/MyBlog/\">戴维的博客</a>");

实际输出时,也就是纯文本而已,并不会作HTML TAG的转换。但若撇开HTML TAG之外(如“<”开头的标记),在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/"

/>

 

 

具体代码在附件。欢迎讨论。

 

1 楼 yza0088 2009-06-16  
不错的书,入门很好
2 楼 yuanliyin 2009-06-18  
偶买了...
在啃