Android ArrayList итератор возвращает ноль - PullRequest
2 голосов
/ 28 февраля 2012

У меня есть простой код ниже, где итератор ArrayList возвращает ноль, когда я зацикливаюсь по списку. У кого-нибудь есть идея, что может заставить итератор возвращать нуль? К сожалению, у меня нет фактических данных, поскольку это происходит только на других телефонах, я понятия не имею, что находится в allDisplayNames, но я знаю, что список инициализирован, так как я проверяю, что он не равен нулю. Заранее спасибо!

Вот код:

            HashMap<Integer, List<String>> allDisplayNames = Contact
                    .getAllFullnames();
            ...
            for (Contact contact : Application.getContacts().values()) {
                ...
                ArrayList<String> namechunks = new ArrayList<String>();
                List<String> displaynames = new ArrayList<String>();
                displaynames.add(contact.getDisplay_name());
                if (allDisplayNames.get(contact.getId()) != null) {
                    displaynames.addAll(allDisplayNames.get(contact.getId()));
                }
                for (String string : displaynames) {
                    if (string==null) {
                        continue;
                    }
                    String[] temp = string.split(" "); <-- this line used to trigger NullPointer
                    ...
                }

1 Ответ

0 голосов
/ 25 ноября 2013

Здесь исключение составляет String[] temp = string.split(" "); означает, что string равно нулю. Таким образом, ArrayList содержит также нулевые значения.
Возможное решение: либо не добавляйте нулевые значения в ваш ArrayList, либо измените свою нулевую проверку на

  if (string.equals(null)) {
       continue;
     }
...