我有一个显示数组列表内容的 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/