Android Resources strings

建立Android專案時就會自動產生strings.xml(位置於專案/res/values/strings.xml),這簡單來說就是把文字部份拉出來整理,需要做多國語言時相當的重要,就算不是要作多國語言建議還是用一下,不然哪天為了找一個字串還要找半天,而且裡面不只可以放單一字串,字串的陣列也可以。

單放字串
<string name="app_name">我是懶人</string>

app_name就是這字串的帶稱想要使用時在一般xml檔就如下列用法
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/app_name">
</TextView>


但總是會遇上需要在.java內要用上的時候,以上方那個TextView為例
text.setText(getString(R.string.app_name));

字串陣列在strings.xml檔內
<string-array name="myArray">
<item>11111</item>
<item>22222</item>
<item>33333</item>
</string-array>


<!-- 也可以直接抓取string內容來用 -->
<string name="red">Red</string>
<string name="orange">Orange</string>
<string name="yellow">Yellow</string>
<string name="green">Green</string>
<string name="blue">Blue</string>
<string name="black">Black</string>

<string-array name="colorArray">
<item>@string/red</item>
<item>@string/orange</item>
<item>@string/yellow</item>
<item>@string/green</item>
<item>@string/blue</item>
<item>@string/indigo</item>
<item>@string/violet</item>
</string-array>


取得陣列
Resources res = getResources();
String[] array = res.getStringArray(R.array.myArray);

//直接寫在一起
String array[] = getResources().getStringArray(R.array.colorArray);


相關連結
Android Developers
Android Developers R.string

1 則留言: