两个具有相同id的XML元素

时间:2010-11-10 11:27:21

标签: android textview

我正在尝试以完全相同的方式修改两个TextView。我以为我可以给它们相同的id,并且使用findViewById()和setText()方法将这些TextViews改为两行。但似乎只有一个TextView被更改。

有办法做到这一点吗? 或者我必须为每个元素创建不同的id,通过findViewById()方法获取每个元素并设置它的文本?

3 个答案:

答案 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)然后编辑文本。