我正在尝试编写一种方法,根据用户输入一次更改一个ArrayList中所有对象的值。用户通过对话框输入值,然后将其转换为整数并分配给值。
该列表名为studentList,并使用Student对象填充。这些对象具有名称和名为Result的int值。我当前的问题是,对话框中的第一个输入值一次添加到所有变量,任何后续条目都没有效果。我需要的是第一个条目更改第一个Object的值,然后通过列表移动到下一个对象并请求用户的另一个输入,依此类推。
我正在使用定制的Dialog.request导入框架来获取用户输入。只需考虑这些行就意味着要出现一个弹出对话框,并以字符串形式请求用户输入
这是我的方法,它位于一个名为Group
的类中public void recordResult()
{
int inputResult;
String inputString;
inputString = Dialog.request("Please Enter A Result");
inputResult = Integer.parseInt(inputString);
for(Student s : studentList)
{
s.setResult(inputResult);
inputString = Dialog.request("Please Enter Another Result");
}
}
我认为问题存在于for循环中。
我试图排除任何不必要的代码,只是包含了我想要实现的方法。其他假设setResult方法存在于Student类中,并填充了studentList。在此先感谢,我希望这只是一个小小的调整
答案 0 :(得分:1)
行为是预期的,因为inputResult仅基于第一个inputString计算一次。您应该将对话框请求放在循环中,如下所示:
public void recordResult()
{
int inputResult;
String inputString = null;
for(Person : aList)
{
if (inputString == null) {
inputString = Dialog.request("Please Enter A Result");
} else {
inputString = Dialog.request("Please Enter Another Result");
}
inputResult = Integer.parseInt(inputString);
s.setResult(inputResult);
}
}