Android 字符串应用浅析


在写Android的程序过程中,总是会用到许许多多的字符串,在平时的程序实践中,我对字符串的应用有些个人的应用见解,如下:

1.字符串的定义

在我们需要引用字符串时,需要在strings.xml文件中定义一个相应的字符串名称,如果其他的地方需要用到相同的字符串,那么可以引用这个strings.xml中的字符串名称,例如要定义一个“开始时间”的字符串,那么就可以写成<string name=”start_time”>Start time</string> 。其中,我们在定义字符串的名称时需要与所要引用的字符串名称相一致,这样也方便查找,便于其他人员查看;另外,在定义字符串的名称时,尽量用小写的字母和下划线相连接,不要出现大写的字母,出现大写字符时,Eclipse在编译的时候是不会出错的,但是在项目运行的时候是会出现异常的。

2.字符串的格式化应用

在写程序的时,经常会遇到一些重复性的词语,但是又有那么一点的差别,例如“这是小莉,今年18岁了”和“这是小姚,今年20岁了”,这时我们就也没有必要分别定义了两个字符串了,只要写成

<string name=”introduce_message”>这是%1$s,今年%2$d 岁了</string>,那么在Java文件中可以这样写:

String.format(getResources().getString(R.string.introduce_message),”小莉”,18),在这里需要说明的是:“$”后面的字符表示传入的字符串类型,例如“s”表示的是String类型,而“d”则表示的是整数类型。例如还有些其他的:

long now=System.currentTimeMills();

String time=String.foramt(“%tR”,now)   输出:16:42

Date date=new Date(now)

String nowDate=String.format(“%tD”,date) 输出:11/07/24

3.自定义字符串的输出

在写程序中,我们还会遇到这样的问题,在页面的布局中需要显示一行带有不同颜色,字体大小的文本,那么这时我们是不是需要风别定义几个个性特异的TextView?No,这是没有必要地(哎,不过以前倒是做过这样的事)。我们可以如此设计一个TextView的内容:

TextView mTxtContent=new TextView(this);

mTxtContent.setText(Html.fromHtml(“Hello <b> Android</b>,<font size=\”3\” color=\”red\”Hello Android!</font>”));

那么输出的结果是: Hello Android Hello Android!

常用的字符操作有:<u></u>有下划线   <i></i>斜体字  <b></b>加粗,在string.xml中我们若是直接用 <string name=”hello_android”> <b> Hello Android</b> </string> 这样是出不来效果的还需要做一些转义的操作:用“&lt;”表示“<”,用“&gt;”表示“>”那么在strings.xml中写成<string name=”hello_android”>&lt;b&gt; Hello Android &lt;/b&gt;</string>是可以有效果的,常用的字符串的操作还有“\n”换行,“\t”缩进等。

相关内容