通过每次迭代覆盖ArrayList的所有元素

时间:2013-10-17 16:51:33

标签: android arraylist

我用最后插入的元素覆盖了我的ArrayList中的所有元素。如果我将数字1,2,3,4,5,6插入第一个元素,然后将7,8,9,10,11,12插入第二个元素,我最终用第一个元素覆盖第一个元素来自第二个元素的值。我最终得到了一个包含7,8,9,10,11,12两个元素的List。我已经看了一些其他的答案,从我收集的内容来看,这与添加引用而不是值相关,但我尝试了很多事情但没有成功。我只是在用尽了我的选择之后才尝试发帖提问。任何帮助将不胜感激,并提前感谢。

以下是我遇到问题的相关部分。

private View.OnClickListener submitListener = new View.OnClickListener() {

    ArrayList<int[]> tempArrayList = new ArrayList<int[]>();
    int[] ticketArray = new int[6];
    int counter = 0;
    int tempCounter = 0;
    PowerballPoolManagerApplication app = new PowerballPoolManagerApplication();

    @Override
    public void onClick(View view) {

        for (EditText editText : editTextList) {

            if (!editText.getText().toString().matches("")) {

                int currentNumber = Integer.parseInt(editText.getText().toString());
                ticketArray[tempCounter] = Integer.parseInt(editText.getText().toString());
                counter++;
                tempCounter++;

                if (counter > 0 && counter % 6 == 0) {

                    tempArrayList.add(ticketArray);
                    tempCounter = 0;
                } 

1 个答案:

答案 0 :(得分:1)

从外观上看,你要为两个元素添加相同的数组。如果您希望数组是唯一的,您需要克隆它,或者每次迭代都单独构建它。

这意味着在循环中创建ticketArray检查编辑文本值。