2012-02-28 22 views
2

私はリストの周りをループしているときにArrayListイテレータがnullを返す単純なコードを持っています。イテレータがnullを返す原因は何ですか?残念ながら私は実際のデータを持っていない、これは他の携帯電話でのみ起こるので、何がallDisplayNamesにあるのか分からないが、nullに等しくないことをチェックするので、リストが初期化される。 ありがとうございます! String[] temp = string.split(" ");stringがnullの意味でここAndroid ArrayList iteratorはnullを返します

  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 
        ... 
       } 
+0

contact.getDisplay_nameを変更しないでください、である()がnullを返しています。 –

+0

ありがとう、私はそれを試してみて、arraylistにヌルを追加することができますが...文書は "nullを含むすべての要素を許可する"と述べています。 – stoilkov

答えて

0

は、例外がある:ここでは

はコードです。したがって、ArrayListにはnull値も含まれます。
解決策は、どちらかは、あなたのArrayListにnull値を追加するか、または、あなたのヌルチェック、

if (string.equals(null)) { 
     continue; 
    } 
関連する問題