我创建了一个主视图MV和一堆MV.addView(TextView tv)(以及其他小部件,但为了简单起见,现在只考虑电视)。所有的电视和MV等也是以编程方式创建的(没有xml)......所有这些都按预期工作。
我希望能够根据用户操作以编程方式实时更新子TV的价值/内容。
目前我依赖“kludge”:我得到目标孩子,应用MV.removeView(),用新的.settext()创建一个全新的电视,然后用addView插入新的电视在旧/删除电视的位置。
我这样做是因为我无法弄清楚如何直接访问(已经添加的)电视的值。
我尝试过使用tvexisting = getchild(id),tvexisting.setText(“new new”)的变体,但没有快乐。
(kludge)有效,但我宁愿能够直接更改电视的价值,而无需“强力”删除/添加视图只是为了更改文本/内容。这样的过程是否可用?请指教。
答案 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));