2017-09-14 75 views
0

我有一個默認字符串,需要在應用程序上使用,不管語言如何。從Android的「值」文件夾獲取字符串資源

認爲它應該是獨立於應用程序的語言我沒有把字符串放在任何string.xml文件中用於不同的語言。相反,我創造了另一個myString.xml文件夾values裏面,看這樣的:

myString.xml

<resources> 
    <string name="myStringResource">This text shall be available 
for the entire app no matter the language 
</string> 
</resources> 

但現在我不能夠訪問此字符串。

這是做錯了嗎?如果是的話,那麼我怎樣才能達到上面解釋的情景?

+0

據我所知,這應該工作。你試過了嗎? – 0xDEADC0DE

+1

如果只是一個字符串,您可以將其存儲在您的偏好設置中,然後在任何需要的位置進行檢索。 – Aradhna

+0

我嘗試了不同的東西,比如編寫例如'String test = getString ...',但Android Studio將getString標記爲紅色。我應該怎樣稱呼它? – codeKiller

回答

4

要訪問字符串,你可以像培拉特在他的回答中說的那樣做。從使用ID(R.string.resName)的代碼和使用@string註釋的XML:@string/resName獲取字符串。

但是,當您使用代碼(例如Java)時,您不能只使用該ID。您還必須使用Context.getString(R.string.resName);來獲取實際的字符串。所以,如果你想從代碼訪問字符串,並把它作爲一個變量,你這樣做:

String res = context.getString(R.string.myStringResource); 

我寫context,因爲它是在上下文中的一類。但是,您也可以使用Activity實例來獲取字符串。如果你正在編寫一個活動的代碼,你可以寫String res = getString(R.string.myStringResource);

活動意味着要麼擴展活動或AppCompatActivity(或在某個級別上擴展的類)

+0

謝謝,我會試試,我幾乎可以肯定'Context'就是這裏的問題 – codeKiller

+0

是的,'Context'問題,現在解決了,謝謝! – codeKiller

相關問題