将对象添加到对象的ArrayList

时间:2018-08-19 15:47:51

标签: java android arrays arraylist out-of-memory

在将对象添加到ArrayList的行上没有内存错误-最后一行

我想每次单击按钮saveScore,从第一个spinner中选择的第一支球队的名字,从第二个spinner中选择的第二支球队的名字,第一支球队的得分editText和第二个editText中得到的分数作为我的类对象的参数。

teamOneScoreteamTwoScore是两个EditText,我输入从微调器中选择的每个团队的得分,而arrList是我的ArrayList对象。 / p>

我有一个class-TeamsViewModel,其中有4个字符串类型的成员:team1Nameteam2Nameteam1Scoreteam2Score。 >

 saveScore.setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View view) {
        boolean resultAddTeamOneScore = addTeamOneScore(weakActivity, teamOneScore.getText().toString().trim(), teamTwoScore.getText().toString().trim());
        boolean resultAddTeamTwoScore = addTeamTwoScore(weakActivity, teamTwoScore.getText().toString().trim(),teamOneScore.getText().toString().trim());
      if (resultAddTeamOneScore && resultAddTeamTwoScore) {
          dialog.dismiss();
          }

     /** save the teams selected from the spinner */
     String selectedT1 = teamOneSpinnerSelected(teamOneSpinner);
     String selectedT2 = teamTwoSpinnerSelected(teamTwoSpinner);
     while (!selectedT1.equals(selectedT) {
        /** add to the ArrayLists of objects the teams selected and their's score*/
        arrTeam.add(new TeamsViewModel(selectedT1, teamOneScore.getText().toString().trim(), selectedT2, teamTwoScore.getText().toString().trim()));
                    }
                }
            });

1 个答案:

答案 0 :(得分:0)

更改

while (selectedT1 != selectedT2) 

while (! selectedT1.equals(selectedT2))

条件(selectedT1!= selectedT2)可能始终为true,尽管两个字符串的内容相同,并且您有一个无限循环导致OutOfMemoryError。在Java中,不能使用!=或==比较字符串,请始终使用equals()。