文本视图数组未从数组正确填充

时间:2019-02-25 05:34:52

标签: android arrays textview

我正在尝试创建Array中的TextViews,每个对象都来自Array个对象,但是每个TextView最终显示了我最后一个对象输入。

我已经用

启动了TextViews数组
    TextView[] loanViewDisplay = new TextView[5];

在我的onCreate里面,

    loanViewDisplay[0] = findViewById(R.id.loanView1);
    loanViewDisplay[1] = findViewById(R.id.loanView2);
    loanViewDisplay[2] = findViewById(R.id.loanView3);
    loanViewDisplay[3] = findViewById(R.id.loanView4);
    loanViewDisplay[4] = findViewById(R.id.loanView5);

我有一个addNewLoan按钮,用于启动Intent和startActivityForResult。新的贷款被添加到名为arrayOfLoans的数组中,程序返回到此活动,在这里我想在其自己的TextView中列出来自arrayOfLoans的每笔贷款。

    for(int i=0; i<listOfLoans.length; i++){
        if(arrayOfLoans[i] != null){
            loanViewDisplay[i].setText(arrayOfLoans[i].loanInformation());
        }
    }

如果我添加一笔本金为5000美元的贷款,则输出结果很完美

    Loan 1: Principle $5000

但是如果我然后单击我的addNewLoan按钮并添加第二笔价值$ 2000的贷款,我的输出将变成

    Loan 2: Principle $2000
    Loan 2: Principle $2000

我知道我的数据已正确添加到arrayOfLoans中。我已将问题缩小到TextViews数组。感谢您的帮助

1 个答案:

答案 0 :(得分:0)

问题出在您的循环中,您不需要在文本视图中循环显示名称。您只需要填充最后一个位置数组的编号即可。

为此,首先设置i=0,然后在下面的代码行中使用。

if(arrayOfLoans[i] != null){
        loanViewDisplay[i].setText(arrayOfLoans[i].loanInformation());
        i++;
}