在写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> 这样是出不来效果的还需要做一些转义的操作:用“<”表示“<”,用“>”表示“>”那么在strings.xml中写成<string name=”hello_android”><b> Hello Android </b></string>是可以有效果的,常用的字符串的操作还有“\n”换行,“\t”缩进等。