2016-04-16 169 views
0

我已經在我的類的頂部聲明以下:初始化字符串數組從字符串數組資源

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); 

任何想法?

回答

0

如果「班級」是從Context繼承的東西,歡迎您在班級中填寫該字段,但直到適當的生命週期方法(例如,活動中的onCreate())才能初始化該字段。直到那時,getResources()纔會起作用。

如果「類」不是從Context繼承的,那麼默認情況下,您所需的語法是不可能的。而且,即使您實施自己的方法,反過來也需要一個Context,而您又回到了原點。

+0

這就是我的想法。我只是試圖避免每次執行onCreate()時初始化數組,並且同時成爲一個好孩子並使用資源 –

+0

@ChrisRead:「我只是試圖避免每次onCreate()都初始化數組,被執行「 - 你不會保存任何東西。 'onCreate()'只在活動被創建時執行,在實例化後不久。所以你的領域初始值設定項。 – CommonsWare