我正在尝试以完全相同的方式修改两个TextView。我以为我可以给它们相同的id,并且使用findViewById()和setText()方法将这些TextViews改为两行。但似乎只有一个TextView被更改。
有办法做到这一点吗? 或者我必须为每个元素创建不同的id,通过findViewById()方法获取每个元素并设置它的文本?
答案 0 :(得分:5)
视图ID是普通整数,因此您可以只想要更改一组ID。例如:
int[] ids = { R.id.text1, R.id.text2, ... };
for (int id: ids) {
TextView tv = (TextView) findViewById(id);
tv.setText("Hello, World!");
}
当然,最好将ids
作为静态最终类成员。即:
public class MyActivity extends Activity {
private static final int[] textViewIDs = {
R.id.text1,
R.id.text2,
...
}
...
}
答案 1 :(得分:0)
您必须定义两个不同的ID。没有办法让一个小部件具有与另一个小部件相同的ID,因为它们都是两个不同且独立的小部件。
答案 2 :(得分:0)
每个View的id都是唯一的。因此无法共享。您可以做的是在代码中获取两个视图ID并具有修改文本的条件。喜欢if(id == id1&& id == id2)然后编辑文本。