迭代对象 - Android Java

时间:2018-03-26 12:42:24

标签: java android

我正在尝试浏览一个对象,其中包含一个包含名称和数字 -

的数组
 public void showPlayerGameList(){
        playerTextView = findViewById(R.id.aPlayerBox);

        for(PlayerDetails aPlayer : playerListGame.myPlayers) {

            playerTextView.append(aPlayer.name + "\n");
        }
    }
}

但是我收到以下错误:

  

引起:java.lang.NullPointerException:尝试从字段读取   'java.lang.String com.example.android.footysortit.PlayerDetails.name'   在空对象引用上

我添加播放器的方式是PlayerDetails的对象(只包含2x字符串和Int):

            if(phone.moveToFirst()) {
                PlayerDetails player = new PlayerDetails(); //TODO turn this into a loop to add each player the user picks and then display it
                player.name = phone.getString(phone.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
               // player.number =phone.getString(phone.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
                playerListGame.addPlayer(player);

这个想法是让用户选择一个联系人,他们的名字显示在列表中,但他们每次都可以选择不同的联系人,每个联系人都应该添加到列表中。

有什么想法吗?

谢谢

1 个答案:

答案 0 :(得分:0)

添加播放器时,请检查phone.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)的结果是否为空。

目前似乎将空值设置为玩家名称。

也许你可以尝试另一个值,或者将名称设置为空字符串而不是null。