Android之string.xml 使用总结

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

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

  

1.      定义字符串和数值

strings.xml定义


    StringDemo

    青岛

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定义


    StringDemo

    青岛

    
        北京
        上海
        济南
        青岛
    

* 获取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拼接。我们可以这样做:

 
Android的国际化]]>

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

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

Strings.xml

今年我%1$d岁,读%2$s.

在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的使用暂时总结了这些用法,哪位童鞋还知道更多用法,请告诉我,我做下补充,感谢!

你可能感兴趣的:(android,国际化,String.xml,格式化文本,字符串,Android基础)