|
|
51CTO旗下网站
|
|
移动端

3.4 置换TextView文字

《Google Android SDK开发范例大全》第3章为大家讲述的是用户人机界面,本节为大家介绍置换TextView文字。

作者:余志龙等来源:人民邮电出版社|2009-07-30 09:14

3.4 置换TextView文字

CharSequence数据类型与Resource ID应用

范例说明

从一开始自Layout里通过Resource初始化TextView的文字,到程序中动态更改TextView文字,但要如何在代码里取得Resource的字符串呢?在Android里,确实是有些方法可以直接以R.string.*直接转换ID为String,不过,这样的数据类型转换是非常规甚至是不妥的,正确的方法是利用Context.getString方法来取得存放在global里的Resource ID。以下这个范例将示范如何在程序运行时(runtime),通过CharSequence依据Resource ID取出字符串,并正确更改TextView的文字。

运行结果

 
图3-4  通过java.lang.CharSequence这个
Interface来取得存放在global里的Resource ID
范例程序
  1. src/irdc.ex03_04/EX03_04.java

主程序的差异主要是在更改mTextView02的文字时(setText方法),合并了str_3与str_2这两个不同对象,由于setText方法同时支持CharSequence与String类型的参数,故在此示范不同数据类型的字符串进行同步输出。

  1. package irdc.ex03_04;  
  2.  
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.widget.TextView;  
  6.  
  7. public class EX03_04 extends Activity  
  8. {  
  9.   private TextView mTextView02;  
  10.     
  11.   /** Called when the activity is first created. */ 
  12.   @Override 
  13.   public void onCreate(Bundle savedInstanceState)  
  14.   {      
  15.     super.onCreate(savedInstanceState);  
  16.     setContentView(R.layout.main);  
  17.       
  18.     mTextView02 = (TextView) findViewById(R.id.myTextView02);  
  19.     CharSequence str_2 = getString(R.string.str_2);  
  20.       
  21.     String str_3 = "我是程序里调用Resource的";  
  22.     mTextView02.setText(str_3 + str_2);  
  23.   }  
  24. }  
  25. res/layout/main.xml 

为了作为对比,在main.xml里创建了两个TextView,并采LinearLayout的方式配置,一上一下,在运行结果中id为myTextView01的TextView并没有任何文字的更改,维持一开始的str_1(参考字符串常数里的文字),但在程序运行后,id为myTextView02的TextView则作了文字的实时更改。

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.
    android.com/apk/res/android"
     
  3.   android:orientation="vertical" 
  4.   android:background="@drawable/white" 
  5.   android:layout_width="fill_parent" 
  6.   android:layout_height="fill_parent" 
  7.   >  
  8.   <TextView  
  9.   android:id="@+id/myTextView01" 
  10.   android:layout_width="wrap_content" 
  11.   android:layout_height="wrap_content" 
  12.   android:text="@string/str_1" 
  13.   android:layout_x="30px" 
  14.   android:layout_y="50px" 
  15.   >  
  16.   </TextView>  
  17.   <TextView  
  18.   android:id="@+id/myTextView02" 
  19.   android:layout_width="wrap_content" 
  20.   android:layout_height="wrap_content" 
  21.   android:text="@string/str_2" 
  22.   android:layout_x="30px" 
  23.   android:layout_y="70px" 
  24.   >  
  25.   </TextView>  
  26. </LinearLayout> 

扩展学习

虽然在values/strings.xml里定义了默认的字符串常数,需留意若遭遇如"?"、"'"、"\"等符号时,必须使用转义字符(\),如下:

  1. \?  
  2. \'  
  3. \\ 
【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

我的运维日志系统构建之路

我的运维日志系统构建之路

数据驱动运维
共18章 | 我叫于小炳

191人订阅学习

CentOS文件服务的最佳实战

CentOS文件服务的最佳实战

涨薪跳槽必备技能
共15章 | 追风蚂蚁

88人订阅学习

小白网工宝典

小白网工宝典

一次搞定思科华为
共15章 | 思科小牛

431人订阅学习

读 书 +更多

嬴在用户:Web人物角色创建和应用实践指南

您如何保证您的网站确实给予用户他们所需要的,并对您产生商业成果?您需要了解谁是您的用户,您的用户的目标、行为和观点是什么,还要把他...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客