从Android SDK访问字符串资源

时间:2017-02-22 10:33:05

标签: android android-resources

最近我发现,android.R.string包含一些有用的本地化字符串,例如“OK”,“是”,“否”,并且可以使用getResources().getString(android.R.string.yes)

在java代码中访问它们

但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'
    }
}

但仍然无法访问字符串

2 个答案:

答案 0 :(得分:0)

您可以使用@android说明符引用系统资源:

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

答案 1 :(得分:0)

应为main.res.srcDirs,而不是main.resources.srcDirs。 但是,有很多资源,因此会造成混乱,Android Studio会挂起。 不推荐=)