从字符串数组资源初始化字符串数组



我在类的顶部声明了以下内容:

private String[] mapTypes = new String[]{"Normal", "Satellite", "Satellite with streets", "Terrain"};

我还定义了以下字符串数组资源:

<string-array
    name="map_types">
        <item>Normal</item>
        <item>Satellite</item>
        <item>Satellite with streets</item>
        <item>Terrain</item>
</string-array>

我想从类顶部的字符串数组资源初始化数组。即,在声明变量时执行以下操作:

private String[] mapTypeNames = getResources().getStringArray(R.array.map_types);

有什么想法吗?

如果"类"是从Context继承的东西,欢迎您在类中拥有该字段,但在使用适当的生命周期方法(例如,活动中的onCreate())之前无法对其进行初始化。getResources()在此之前不会工作。

如果"类"不是从Context继承的,那么默认情况下,您在语法上想要的是不可能的。而且,即使您实现了自己的getResources()方法,最终也需要一个Context,并且您又回到了原点。

最新更新