android以编程方式更新现有子视图值/内容

时间:2013-11-25 01:57:44

标签: android

我创建了一个主视图MV和一堆MV.addView(TextView tv)(以及其他小部件,但为了简单起见,现在只考虑电视)。所有的电视和MV等也是以编程方式创建的(没有xml)......所有这些都按预期工作。

我希望能够根据用户操作以编程方式实时更新子TV的价值/内容。

目前我依赖“kludge”:我得到目标孩子,应用MV.removeView(),用新的.settext()创建一个全新的电视,然后用addView插入新的电视在旧/删除电视的位置。

我这样做是因为我无法弄清楚如何直接访问(已经添加的)电视的值。

我尝试过使用tvexisting = getchild(id),tvexisting.setText(“new new”)的变体,但没有快乐。

(kludge)有效,但我宁愿能够直接更改电视的价值,而无需“强力”删除/添加视图只是为了更改文本/内容。这样的过程是否可用?请指教。

1 个答案:

答案 0 :(得分:0)

试试这个:

void addView(TextView tv) {
    MV.addView(tv);
}
void removeView(int index,String newValue) {
    TextView tv = MV.getChildAt(index);
    tv.setText(newValue);
    MV.removeViewAt(index);
    MV.add(tv,index);
}

或者如果你不知道索引你可以使用ID(但你应该在使用之前使用tv.setId(UniqueId));