我正在尝试创建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数组。感谢您的帮助
答案 0 :(得分:0)
问题出在您的循环中,您不需要在文本视图中循环显示名称。您只需要填充最后一个位置数组的编号即可。
为此,首先设置i=0
,然后在下面的代码行中使用。
if(arrayOfLoans[i] != null){
loanViewDisplay[i].setText(arrayOfLoans[i].loanInformation());
i++;
}