【发布时间】:2019-07-18 11:51:44
【问题描述】:
我正在尝试创建 TextViews 的 Array ,每个都从 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 数组。感谢您的帮助
【问题讨论】:
-
你如何填写
arrayOfLoans?或者你能登录arrayOfLoans吗?也许数组中的所有字符串都是相同的。 -
所以我原本以为这不是我的问题,但我确定当我添加新贷款时,所有贷款都会以某种方式被替换。我切换到一个 ArrayList 并在主要活动中使用 public static ArrayList
listOfLoans = new ArrayList () 声明了我的 ArrayList;在另一个类别中,我使用 Loan loan = new Loan(principle, rate); 创建了一个贷款。并使用 listOfLoans.add(loan); 将其添加到 ArrayList;当我尝试循环访问贷款时,listOfLoans 的每个索引都返回相同的信息。我做错了什么?