这似乎是一个小问题,但我不知道如何处理它。
我在xml文件中创建了一个字符串数组。接下来,我想将此数组导入String [],这就是我的工作方式:
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.releases);
// array from XML
String[] rlsMixTitleArr0 = getResources().getStringArray(R.array.releasesMixTitle);
rlsMixTitleArr = rlsMixTitleArr0;
// rest of program...
}
rlsMixTitleArr
在此方法上方声明为:
static String[] rlsMixTitleArr = new String[] {};
我已经通过Toast消息测试了全局变量rlsMixTitleArr确实正确地更新了。然而,问题是当我尝试从另一个方法(而不是onCreate)访问rlsMixTitleArr时,它就像它根本没有更新,它只是一个空数组(因为它在顶部声明了这种方式)。您应该认为onCreate是程序启动时首先发生的事情,因此全局变量将被更新(并且可以被其他方法使用)。据我所知,你无法从onCreate方法之上的资源中获得一些东西。所以我现在被困住了。
我如何让它运作?
答案 0 :(得分:0)
尝试为静态数组创建一个访问器,并检查它是否已填充。这样就可以按需创建数组,而不是在应该创建它之前的事件处理程序中创建它。
static String[] rlsMixTitleArr = null;
public static String[] getRlsMixTitleArray(){
if ( rlsMixTitleArray == null ) {
rlsMixTitleArray = getResources().getStringArray(R.array.releasesMixTitle);
}
return rlsMixTitleArray;
}