我有以下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/