我正在制作评分应用程序,基本上我有一个编辑字段(数字字段),您可以输入您的成绩(数字),或每个年级的多个字段?但是让我说我想计算平均成绩,如果我的编辑字段不在数组中,我将不得不通过id遍历字段的每个值,这将使代码太长。所以我想要一个从每个编辑字段获取值的数组,所以如果我有2个编辑字段,我在第一个中键入4,在第二个中键入6,我的数组将是{4,6}。我是android开发的初学者,但我有扎实的Java经验。
答案 0 :(得分:0)
由于每个EditText都是自己的对象,并且有自己的值字段,因此只能在这里执行此操作。因此,在某种程度上,您将不得不引用每个EditText。
至少可以做的是跟踪List中的每个EditText作为成员变量。这样,您只需在活动中获取对每个edittext的引用。然后,当您需要引用集合以进行平均或其他任何操作时,您可以遍历调用.getText()的列表。如果您需要引用特定的edittext,请在另一个成员变量中存储单独的引用,或者按ID或您设置的标记在列表中查找(有关标签的更多信息,请参阅here)。
答案 1 :(得分:0)
或许使用数值列表初始化HashMap中的每个editText,并使用editText引用将值添加到数值列表中并获取值,如下所示:
final Map<EditText, List<Integer>> editTexts = HashMap<EditText, List<Integer>>();
如果您启动EditText,您可以执行以下操作:
EditText editText = (EditText) findViewById(R.id.editText);
editTexts.put(editText , new ArrayList<>());
editText.setOnClickListener(new OnClickListener(){
public void onClick(View v){
editTexts.get((EditText) v).add(SOME_VALUE);
}
);
我没有测试过,但这可能是一个有效的策略。