这种主要是应用于for循环中遍历给view赋值用的,然后view又刚好取名为xx1-9这种,以前这种老是傻傻的一个个findVIewById,今天知道了谷歌是有对应的api去实现的,直接怼代码
/**
* Return a resource identifier for the given resource name. A fully
* qualified resource name is of the form "package:type/entry". The first
* two components (package and type) are optional if defType and
* defPackage, respectively, are specified here.
*
* <p>Note: use of this function is discouraged. It is much more
* efficient to retrieve resources by identifier than by name.
*
* @param name The name of the desired resource.
* @param defType Optional default resource type to find, if "type/" is
* not included in the name. Can be null to require an
* explicit type.
* @param defPackage Optional default package to find, if "package:" is
* not included in the name. Can be null to require an
* explicit package.
*
* @return int The associated resource identifier. Returns 0 if no such
* resource was found. (0 is not a valid resource ID.)
*/
public int getIdentifier(String name, String defType, String defPackage) {
return mResourcesImpl.getIdentifier(name, defType, defPackage);
}
用这个去获取的
例子:
Resources res = getResources();
for (int i = 0; i < 9; i++) {
int id = res.getIdentifier("btn" + i, "id", getPackageName());
Button btn = (Button) findViewById(id);
btns.add(btn);
}
这样就可以循环获取到9个控件了