最近我发现,android.R.string
包含一些有用的本地化字符串,例如“OK”,“是”,“否”,并且可以使用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"
给了我“资源不公开”的错误
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 :(得分:0)
您可以使用@android
说明符引用系统资源:
android:text="@android:string/SOME_RESOURCE"
答案 1 :(得分:0)
应为main.res.srcDirs
,而不是main.resources.srcDirs
。
但是,有很多资源,因此会造成混乱,Android Studio会挂起。
不推荐=)