根据用户输入迭代 ArrayList 附加值

Iterate over an ArrayList appending values based on user input

我正在尝试编写一种方法,用于根据用户输入一次更改 ArrayList 中所有对象的值。用户通过对话框输入一个值,然后将其转换为整数并分配给一个值。

该列表称为 studentList 并填充了 Student 对象。这些对象有一个名称和一个名为 Result 的 int 值。我目前的问题是,我在对话框中输入的第一个值会立即添加到所有变量中,并且任何后续输入都无效。我需要的是第一个条目更改第一个对象的值,然后通过列表移动到下一个对象并请求用户的另一个输入,等等。

我正在使用定制的 Dialog.request 导入框架来获取用户输入。仅考虑这些行意味着将出现一个弹出对话框并请求用户以字符串形式输入

这是我的方法,它在一个名为 Group

的 class 中
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 循环中。

我已尝试排除任何不必要的代码,只包含我尝试实现的方法。其他假设 Student class 中存在 setResult 方法,并且填充了 studentList。提前致谢,我希望这只是一个小的调整

该行为是预期的,因为 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);
  }

}