【问题标题】:java.lang.NullPointerException on a static list.isEmpty() operation静态 list.isEmpty() 操作上的 java.lang.NullPointerException
【发布时间】:2013-07-03 18:42:40
【问题描述】:

我有一个问题并且一直坚持下去。我不知道如何解决它以及它为什么会发生。实际上,我在某个类“实用程序”中定义并初始化了一个静态列表。我启动(android)应用程序,即第一个活动然后进入第二个活动并检查

if(Utilities.myList.isEmpty()) {

    // load data from server
} else {

   // skip
}

第一次运行正常。没有例外,没有问题。然后我按下后退按钮(再次进入第一个活动)

@Override
public void onBackPressed(){
    finish() ;
    super.onBackPressed() ;
}

然后再次回到第二个活动并在 if 条件下获得异常 java.lang.NullPointerException,即“Utilities.myList.isEmpty()”和

Utilities.myList 给了我“空”值

Utilities 类中的列表

public static List<BranchInfo> myList= new ArrayList<BranchInfo>() ;

【问题讨论】:

  • 你初始化列表了吗?在哪里?向我们展示。
  • if() 在哪里/何时调用?
  • 是的 public static List myList = new ArrayList() ;正如我所解释的,它第一次运行但第二次出现异常
  • @Ridcully 在 activity2 启动时在 onCreate() 中
  • @Inn_vita 你在哪里初始化它?将其添加到您的问题中。

标签: java android nullpointerexception android-activity


【解决方案1】:

您必须将内存分配给您正在使用的活动的 onCreate 方法中的列表。 在您的 Utility 类中创建一个方法来执行此操作,并在您使用 Utilities.myList 的 Activity 的 onCreate 中调用它。

【讨论】:

  • 好的。但为什么它第一次运行
  • 答案在您的实用程序类中,要么您没有通过活动生命周期管理列表,要么您以错误的方式初始化它。同时发布您的实用程序类。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-07
  • 2022-01-14
  • 1970-01-01
  • 1970-01-01
  • 2021-02-26
  • 1970-01-01
相关资源
最近更新 更多