如何使编辑文本中的每个输入成为android中数组中的值?

时间:2016-05-11 20:03:14

标签: android arrays

我正在制作评分应用程序,基本上我有一个编辑字段(数字字段),您可以输入您的成绩(数字),或每个年级的多个字段?但是让我说我​​想计算平均成绩,如果我的编辑字段不在数组中,我将不得不通过id遍历字段的每个值,这将使代码太长。所以我想要一个从每个编辑字段获取值的数组,所以如果我有2个编辑字段,我在第一个中键入4,在第二个中键入6,我的数组将是{4,6}。我是android开发的初学者,但我有扎实的Java经验。

2 个答案:

答案 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);
    }
);

我没有测试过,但这可能是一个有效的策略。