2

我在这里尝试了所有可能的问题,但无法绕过它。

我有一个 java 文件(android 活动),我在其中声明

private someAdapter someAdapterObj;

在 onCreate() 内部,我调用构造函数并实例化适配器。

this.someAdapterObj= new someAdapter (this,
                       R.layout.item_row,someAdapter.getAllNews());

在 someAdapter 文件中,我有

private static someArrayList;

我在 someAdapter 中也有一个 addtoarraylist()。

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

4

1 回答 1

4

任何类型为类(不是原始类型)的实例或静态变量默认为null. 您需要对其进行初始化 - 例如:

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

但是

  • ArrayList不是线程安全的,所以你需要同步
  • 像这样使用静态变量有点代码味道(全局状态);如果您可以适当地连接组件,通常会更干净,这样您就不需要任何全局状态
于 2013-01-19T23:12:00.993 回答