Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:适配器内的静态变量为null_Java_Android_Static_Android Arrayadapter - Fatal编程技术网

Java Android:适配器内的静态变量为null

Java Android:适配器内的静态变量为null,java,android,static,android-arrayadapter,Java,Android,Static,Android Arrayadapter,我在这里试过了所有可能的问题,但都绕不开 我有一个java fileandroid活动,我在其中声明 private someAdapter someAdapterObj; 在onCreate内部,我调用构造函数并获得适配器的实例化 this.someAdapterObj= new someAdapter (this, R.layout.item_row,someAdapter.getAllNews()); 在某个适配器文件中,我有 privat

我在这里试过了所有可能的问题,但都绕不开

我有一个java fileandroid活动,我在其中声明

private someAdapter someAdapterObj;
在onCreate内部,我调用构造函数并获得适配器的实例化

this.someAdapterObj= new someAdapter (this,
                       R.layout.item_row,someAdapter.getAllNews());
在某个适配器文件中,我有

private static someArrayList;
我还有一个addtoarraylist在一些适配器中


现在,我从mainActivity中的onCreate调用addtoarraylist,但在实例化适配器之前。这应该是可能的,因为arraylist是静态的。但是,当我添加到arraylist时,我得到了一个nullpointer异常。有人能帮我吗?

任何类型为类而非原语的实例或静态变量默认为null。您需要对其进行初始化-例如:

private static List<Foo> someArrayList = new ArrayList<Foo>();
然而:

ArrayList不是线程安全的,因此需要同步 像这样使用静态变量有点像代码嗅到全局状态;如果您可以适当地连接组件,这样就不需要任何全局状态,那么它通常会更干净
类型为类而不是基元的任何实例或静态变量默认为null。您需要对其进行初始化-例如:

private static List<Foo> someArrayList = new ArrayList<Foo>();
然而:

ArrayList不是线程安全的,因此需要同步 像这样使用静态变量有点像代码嗅到全局状态;如果您可以适当地连接组件,这样就不需要任何全局状态,那么它通常会更干净
那么,您在哪里初始化someArrayList?你还没有显示出来。你能添加一些适配器代码吗?@JonSkeet Mann..非常感谢。。我怎么没看到。。这正是问题所在。天哪,我从大楼里跳出来了@阿达姆兹纳杰德:嗨,琼斯基特的回答很有帮助。谢谢。@JonSkeet您应该添加您的评论作为答案,以便OP可以接受。您在哪里初始化someArrayList?你还没有显示出来。你能添加一些适配器代码吗?@JonSkeet Mann..非常感谢。。我怎么没看到。。这正是问题所在。天哪,我从大楼里跳出来了@阿达姆兹纳杰德:嗨,琼斯基特的回答很有帮助。谢谢。@JonSkeet您应该添加您的评论作为答案,以便OP可以接受