ListView 的 ArrayList 上的 Android 空指针异常

标签 android nullpointerexception

我有一个显示数组列表内容的 ListView 。我正在使用一个简单的适配器来实现这一点。

public static ArrayList<String> homeScreenContacts = new ArrayList<String>();

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
                R.layout.home_screen_contacts_view, NewContact.homeScreenContacts);

第二行给我一个空指针异常。我想了想,我决定是因为 arrayList 是空的。所以我在 arraylist 声明和 arrayadaptor 声明之间添加了以下行...

NewContact.homeScreenContacts.add("A Contact");

这解决了问题,我的代码工作正常,但现在 ListView 显示“联系人”,我不希望它显示。有没有办法摆脱空指针异常问题,但数组列表仍然为空?因为我想用用户创建的联系人而不是硬编码的随机字符串来填充它。谢谢。

编辑:抱歉,arraylist 位于另一个名为 NewContact 的类中,另外,我是一个非常初级的 Android 程序员,我刚刚开始。

最佳答案

如果 ArrayList 中没有元素或 ArrayList 为 null,则简单的解决方案就是不初始化 ListView

if(NewContact.homeScreenContacts != null && NewContact.homeScreenContacts.size() > 0){
   ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
            R.layout.home_screen_contacts_view, NewContact.homeScreenContacts);

   listView.setAdapter(adapter);
}

你还需要记住,如果你还没有初始化 Adapter 那么就不要初始化 ListView 并且在对 ListView 进行任何操作之前你应该检查它是否为 null 或不是。

正如您所说,您希望在用户在应用程序中添加一些联系人时进行填充,然后在添加事件时您只需要填充或更新 ListAdapter

希望这个解决方案能解决您的问题。

关于ListView 的 ArrayList 上的 Android 空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18841283/

相关文章:

android - FirebaseMessagingService 仅在后台显示通知

android - 使用 Sinch SDK 发送附件

Android 开发 - 无法识别我的三星 s4 mini - 未经授权

java - 如何避免在此 Java lambda 表达式代码中出现 NullPointerException 警告?

java - Graphics.drawImage() 处的空指针异常

java - 传递多个字符串并在另一 Activity 中检索它们

android - 如何设置android :gravity to TextView from Java side in Android

android - 在 Android 中使用 ViewPager 和 fragment 的 EditText 出现 NullPointerException

java - 为什么 `exception` 在任何地方都看不到?

java - 为什么会抛出 NullPointerException?