For循环显示上一个值和下一个值

时间:2019-04-22 10:42:11

标签: java android for-loop

我试图理解为什么我的for循环在每次迭代中一直显示以前的值。

for (String value : list)
{
    String[] separated = value.split("/");
    final String readTime = separated[0];
    final String userID = separated[1];
    db.collection("users").document(userID)
        .get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
            @Override
            public void onComplete(@NonNull Task<DocumentSnapshot> task) {
                if (task.isSuccessful()){
                    DocumentSnapshot doc = task.getResult();
                    readHistoryFields.append("\nNolasīšanas laiks: ").append(readTime);
                    readHistoryFields.append("\nVārds: ").append(doc.get("Name"));
                    readHistoryFields.append("\nUzvārds: ").append(doc.get("Surname")).append("\n");
                    readHistory.add(readHistoryFields.toString());
                    adapter = new ArrayAdapter<String>(NFCReadHistory.this, android.R.layout.simple_list_item_1, readHistory);
                    listview.setAdapter(adapter);
                }
            }
        });
}

我有一个这样的for循环。它需要显示Listview以及List内部的每个值。

显示结果时,它们会以这种方式显示。

Val1

Val1
Val2

Val1
Val2
Val3

...

据我所知应该是这样

Val1

Val2

Val3

...

在for循环内生成listview时是否缺少某些东西?

1 个答案:

答案 0 :(得分:0)

您要在forloop中创建适配器对象并将其附加到listview。在每次迭代中,“ readHistory”都会增加,然后会添加到listview中。

解决方案:在循环外部创建具有最终项目列表的适配器对象,然后将其附加到listview。