在将对象添加到ArrayList的行上没有内存错误-最后一行
我想每次单击按钮saveScore,从第一个spinner
中选择的第一支球队的名字,从第二个spinner
中选择的第二支球队的名字,第一支球队的得分editText
和第二个editText
中得到的分数作为我的类对象的参数。
teamOneScore
和teamTwoScore
是两个EditText
,我输入从微调器中选择的每个团队的得分,而arrList
是我的ArrayList
对象。 / p>
我有一个class
-TeamsViewModel
,其中有4个字符串类型的成员:team1Name
,team2Name
,team1Score
,team2Score
。 >
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()));
}
}
});
答案 0 :(得分:0)
更改
while (selectedT1 != selectedT2)
到
while (! selectedT1.equals(selectedT2))
条件(selectedT1!= selectedT2)可能始终为true,尽管两个字符串的内容相同,并且您有一个无限循环导致OutOfMemoryError。在Java中,不能使用!=或==比较字符串,请始终使用equals()。