是否可以通过名称而不是ID来查找视图。
findViewById(R.id.someView);
但我想做这样的事情:
findViewByName("someView");
答案 0 :(得分:58)
在处理xml时,您必须按标识符查找视图,但是您可以使用getIdentifier(String name, ...)查找标识符,如果您的布局编号为例,这将非常有用。请注意,这样的查找相对昂贵。
完成答案
int id = getResources().getIdentifier(name, "id", context.getPackageName());
View view = findViewById(id);
答案 1 :(得分:3)
是的,我们也可以按名称找到任何静态资源。
int id = getResources().getIdentifier(name, "id", context.getPackageName());
View view;
if(id != 0) {
view = findViewById(id);
}
getResources()。如果找不到资源或名称不匹配,标识符将返回0。