2017-02-22 201 views
0

最近我發現,android.R.string包含一些有用的本地化的字符串,如「OK」,「是」,「否」,他們是在Java代碼中訪問與getResources().getString(android.R.string.yes)訪問字符串資源

但是Android SDK包含了許多更多本地化字符串它們位於$ANDROID_HOME/platforms/android-25/data/res/values-$LANG/string.xml

例如,我想用下面的字符串

<string name="gpsNotifTicker">Location request from <xliff:g id="name">%s</xliff:g></string> 

是否有什麼辦法可以做到這一點,每個文件複製和粘貼的串旁邊?

在XML android:text="@android:string/gpsNotifTicker"給我「資源是不公開的」錯誤

在Java getString(android.R.string.gpsNotifTicker, name)給我「未解決的參考」

而且,我試圖SDK資源添加到源集的build.gradle

android { 
//..... 
    sourceSets { 
     main.java.srcDirs += 'src/main/kotlin' 
     main.resources.srcDirs += '/Users/rostopira/Library/Android/sdk/platforms/android-25/data/res' 
    } 
} 

,但字符串仍然不能訪問

回答

0

您可以參考系統資源,@android說明符:

android:text="@android:string/SOME_RESOURCE" 
+0

這不適用於示例。僅適用於簡單字符串,如「是」和「否」。此外,我需要Java代碼中的這個字符串 –

+0

我想這只是自動完成不起作用。否則,如果你手動編寫它不會提示你錯誤。 [見截圖](http://i.imgur.com/qwUpDpE.png) – azizbekian

+0

我試了。它說''@android:string/gpsNotifTicker「資源不是公共的' –