这是我能找到的唯一方法,但看起来很糟糕:
public View getViewByIdFromLayout(int id) {
for (int i = 0; i < layout.getChildCount(); i++) {
View v = layout.getChildAt(i);
if (v.getId() == id)
return v;
}
return null;
}
有更好的方法吗?这些视图是以编程方式创建的,而不是通过xml创建的,视图的ID在给定的布局中是唯一的,但可以在其他布局中重复使用。
答案 0 :(得分:3)
只要您提供了ID,您仍然可以使用findViewById()
。只需确保在ID 唯一的布局上调用findViewById()
。
答案 1 :(得分:0)
你应该改变
if (v.getId() == id)
return v;
到
if (v.getId().equals(id))
return v;