gpt4 book ai didi

java - android中的变量范围问题

转载 作者:搜寻专家 更新时间:2023-11-01 09:14:23 26 4
gpt4 key购买 nike

大家好我在一个 Activity 中有一个数组列表和数组,并且有两个功能。我在 Activity 中声明了 arraylist 和 array 并在函数中使用。但我无法访问第二个函数中的那些变量。这两个功能都在同一个 Activity 中。在第二个函数中,在 Logcat 中给出 NullPointerException。代码:

public class testapplication extends Activity {
ArrayList<String> getdatabase = new ArrayList<String>();
public String[] array;
protected void onStart() {
getdatabase.add("1");
getdatabase.add("2");
array=new String[getdatabase.size()];
getdatabase.toArray(array);
Log.e("app",""+array.length()); // print as app 2

}

public void onCreate(Bundle savedInstanceState) {

Log.e("app",""+array.length()); // NullPointerException.
}

}

请帮助我。

最佳答案

问题在于 onCreate() 是 Activity 启动时首先调用的方法。此时,您还没有初始化变量数组。这就是为什么会出现 NullPointerException。

要解决这个问题,你必须确保你调用这个:

array=new String[getdatabase.size()];

在您尝试访问数组之前。

正如 coder_tim 指出的那样,在 documentation你可以清楚地看到 onCreate() 总是在 onStart() 之前被调用。

关于java - android中的变量范围问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5787116/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com