按名称查找视图

时间:2011-07-26 14:20:58

标签: android android-layout

是否可以通过名称而不是ID来查找视图。

findViewById(R.id.someView);

但我想做这样的事情:

findViewByName("someView");

2 个答案:

答案 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。