我有以下for-each循环:

for(DataSnapshot data: dataSnapshot.getChildren()){
    TextView textview = (TextView) findViewById(R.id.textview);
    String message = data.getKey().toString();
    textview.setText(message);
}


现在有ID为textview1 textview2 textview3 .. etc的不同textview(可以缩放)。但是,如何在for-each循环中执行此操作?使用一些计数器,并以某种方式将其连接到变量?
我希望不同的消息显示在不同的文本视图中

最佳答案

您将必须像这样修改您的代码:

int i = 1;
for(DataSnapshot data: dataSnapshot.getChildren()){
    int id = getResources().getIdentifier("textview" + i, "id", getPackageName());
    TextView textview = (TextView) findViewById(id);
    String message = data.getKey().toString();
    textview.setText(message);
    i++;
}


getResources().getIdentifier("textview" + i, "id", getPackageName());一起使用View的名称ID查找整数ID。
您可能需要为Context提供getResources(),例如:

context.getResources().getIdentifier("textview" + i, "id", context.getPackageName());


如果此代码不在活动中。

关于java - 如何以编程方式更新变量以匹配迭代,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53322583/

10-09 06:18
查看更多