android字符串资源文件在哪个目录

如题所述

  Android 提供三种类型的字符串资源。
  String 提供一个单独的字符串
  String Array 提供一个字符串数组
  Quantity Strings(Plurals) 为不同的数量提供不同的字符串适配
  String
  一个单独的字符串,定义在xml文件里,可以供 layout xml 引用,也可以供 Java 读取。一般默认的,在 res/values/strings.xml 里可以定义 <string name="helloworld">Hello World</string>。下面是一个完整的 xml 内容。
  <?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="string_name">text_string</string>
</resources>

  其中的 name 对应的就是 key,每个字符串都需要有一个单独的 key 。必须单独的,如果有重复的,编译器可能不会报错,但是运行的时候,可能会读不到你想要的内容。这个就不用深入解释了,理所应当的,key 必须唯一,没啥好商量的。但是 xml 文件可以有多个。很多人喜欢把所以的字符串都放在 strings.xml 里。这是开发工具默认帮你生成的。但是随着项目的持续开发,项目越来越大的时候,我还是建议可以分成多个文件的。这样有利于代码的阅读,而且不会影响运行的效率,多出来的工作在编译的时候已经做好了。
  使用方法:
在layout xml 里使用,例如
  <TextView android:text="@string/helloworld"/>

  或者在 Java code 里使用
  String string = getString(R.string.helloworld);

  getString(int) 和 getText(int) 都可以返回字符串内容,不同的是 getText(int) 可以返回富文本(rich text)字符串。富文本就是加粗啊,斜体啊之类的简单的样式,下面会说。
  String Array
  字符串数组,可以定义在 strings.xml 里,也可以定义在其他的 xml 里。
  <string-array name="string_array_name">
<item>text_string</item>
</string-array>

  一个 string-array 里可以有 N 多个 item。同样,name 也必须唯一。item 可以是一个字符串,也可以是另外一个字符串的引用。使用:
  Resources res = getResources();
String[] strings = res.getStringArray(R.array.string_array_name);

  这样就得到了一个字符串数组了。
  Quantity Strings(Plurals)
  带数量的字符串。在很多语言里,不同的数量的文字的表达方式有些不同。比如在英文里,一本书表示为 one book . 两本书表示为 two books 。在单词上,或者在语法上,就有很多的不一样的地方,这样一个字符串就可能搞不定了。
这个时候 Quantity Strings 就可以帮你搞定这个问题。
语法是这样子的:
  <resources>
<plurals name="plural_name">
<item quantity=["zero" | "one" | "two" | "few" | "many" | "other"] >text_string</item>
</plurals>
</resources>

  name 也就是 ID,唯一,不废话
  item 可以有多个,每个 item 都有 quantity 属性,每个 item 的 quantity 属性不能一样。
  zero 表示没有;one 表示一个,单数;two 表示两个,或者一对,一双;few:表示很少;many:表示挺多的;other:表示其他。
  使用:
  int count = getNumberOfsongsAvailable();
Resources res = getResources();
String songsFound = res.getQuantityString(R.plurals.numberOfSongsAvailable, count, count);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-21
res中的values目录下本回答被提问者和网友采纳
第2个回答  2015-04-21
下个字体管家就可以看到了,求采纳
相似回答