2013-10-06 138 views
0

我指的是名稱,而不是它的值,例如這樣的:Android - 如何從資源獲取名稱?

<resources> 
    <string name="magical_value_1">Lapin</string><br> 
    <string name="magical_value_2">Poulet</string><br> 
    <string name="magical_value_3">Saucisse</string><br> 
</resources> 

如果我使用String value1 = getResources().getString(R.string.magical_value_1); 這將是拉平的結果,但我需要一種方法在一個變量獲得"magical_value_1"(沒有拉平) 。我需要這樣做是因爲語言,我的應用程序中有很多語言,並且它們的值會更改,但名稱(magical_value_1)是唯一保留的語言(不論語言)。謝謝

+1

您是否閱讀過有關支持不同語言的支持http://developer.android.com/training/basics/supporting-devices/languages.html?這聽起來對我來說,你正試圖支持不同的語言,但正試圖以錯誤的方式做到這一點...... – Darwind

回答

0

請參閱this answer

TL; DNR:

getResources().getResourceEntryName(int resid); 
+0

在他的情況下,'int resid'是什麼意思? –

+0

他問如何將int值R.string.magical_value_1轉換爲字符串「magical_value_1」。這就是我的答案的原因! – Buddy

1

你應該考慮看看到i18n Android開發者文檔。

1

如果您嘗試讓您的應用程序支持多種語言。這裏有一些簡單的例子。

比方說,你正試圖讓你的應用程序支持法國和英國。您需要爲法國創建res/values/strings.xml(適用於法語,其他語言爲法語),res/values-fr/strings.xml

內RES /值-FR/string.xml

<resources> 
    <string name="magical_value_1">Lapin</string><br> 
    <string name="magical_value_2">Poulet</string><br> 
    <string name="magical_value_3">Saucisse</string><br> 
</resources> 

而且裏面RES /價值/ string.xml

<resources> 
    <string name="magical_value_1">Rabbit</string><br> 
    <string name="magical_value_2">Chicken</string><br> 
    <string name="magical_value_3">Sausage</string><br> 
</resources> 

要通過設置更改設備的語言測試。

+0

這就是我所做的,但不知道當我更改不同於英語的語言時,不起作用,但我現在已經修復 – user2580401