2017-02-22 148 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“资源不是公共的' –

相关问题