Android之string.xml 使用总结

本文介绍了Android中string.xml文件的使用,包括如何定义字符串和数值、字符数组,以及如何进行变量文本格式化。通过将文本资源集中管理,可以提高开发效率并减少数据冗余,同时提供了使用%1$s等格式化文本的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         昨天看公司项目的时候,发现在定义String.xml的时候,用到了%1$s变量文本格式,不太理解。上网翻看了博客,才知道是这么做的。既然对String.xml不太了解,顺便多看几篇大神的博文总结下。   

strings.XML,大家都不陌生。为了国际化,Android建议在屏幕显示的文字定义在strings.xml中。另外一方面,减少了应用体积,降低数据冗余。比如应用中使用“网络不给力,请查看网络连接!”,如果没有放在strings.xml里面,每次使用时都要打印这几个字,降低了开发效率的同时,增加了数据冗余。但将其定义在strings.xml里面,输入一次,其余只要通过getResource.getString(R.string.XX)调用即可,省时省力。

  

1.      定义字符串和数值

strings.xml定义

<span style="font-size:18px;"><resources>
    <string name="app_name">StringDemo</string>

    <string name="city">青岛</string>
</resources>
</span>

Activity中使用

String city = getResources().getText(R.string.city);
Log.i(“city”, “city : ” + city);
或者使用

String city = getResources().getString (R.string.city);
Log.i(“city”, “city : ” + city);

2. 定义字符数组

在strings.xml定义

<resources>
    <string name="app_name">StringDemo</string>

    <string name="city">青岛</string>

    <string-array name="citys">
        <item>北京</item>
        <item>上海</item>
        <item>济南</item>
        <item>青岛</item>
    </string-array>
</resources>
* 获取String[]数组
String []citys = getResources().getStringArray(R.array.citys);
* 构建ArrayAdapter

ArrayAdapter adapter = ArrayAdapter.createFromResource(
        this, R.array.citys, R.layout.item_tv);

3.  定义字体的颜色

TextView可以通过设置textColor属性来设置,字体的颜色。但是TextView设置textColor属性时,设置的是全部显示内容字体的颜色。假如“Android的国际化”,“Android”是红色,“国际化”是蓝色,该怎么设置呢?是不是需要用TextView拼接。我们可以这样做:

 
<string name="worlds"><Data><![CDATA[<font color="#ff0000">Android</font>的<font color="#0000ff">国际化</font>]]></Data></string>

String worlds = getResources().getString(R.string.worlds);
Spanned ws = Html.fromHtml(worlds);
tv_set.setText(ws);
TextView可以显示Html处理的文字。不懂的可以查看博文: http://blog.youkuaiyun.com/johnsonblog/article/details/7741972。Johnson大神对TextView使用Html处理的文字、图片有详细解析,拜读一下,大有收获。

4. %s变量文本格式:定义格式为%1$f这样的符号来代替,其中%1表示第一个位置的变量, $s表示为字符串类。

Strings.xml

<string name="mine">今年我%1$d岁,读%2$s.</string>

在Activity中使用:

String worlds = getResources().getString(R.string.mine, 25, "研1");


Log.i("123", worlds);
12-25 11:22:17.486 16728-16728/com.example.stringdemo I/123: 今年我25岁,读研1

strings.xml的使用暂时总结了这些用法,哪位童鞋还知道更多用法,请告诉我,我做下补充,感谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值