我希望能够遍历生成的R文件中的所有字段.
就像是:
for(int id : R.id.getAllFields()){
//Do something with id, like create a view for each image
}
Run Code Online (Sandbox Code Playgroud)
我尝试过反射,但我似乎无法加载R类中包含的特定内部类.所以,例如,这对我不起作用:
Class c = Class.forName("packageName.R.id")
Run Code Online (Sandbox Code Playgroud)
我可以反思R类本身,但我需要id类中的字段.
我也试过查看Resources类,但在那里找不到任何东西.在这种情况下,似乎您可以获取resourceID并获取该id的字符串名称,或者获取字符串名称并获取相应的resourceID.我找不到类似的东西:
int[] Resources.getAllResourceIDs()
Run Code Online (Sandbox Code Playgroud)
也许我错了.或者也许我不应该手动打字,例如:
int[] myIds = {R.id.firstResource, R.id.secondResource}
Run Code Online (Sandbox Code Playgroud)
这种方法的缺点是在使用UI设计器时不够灵活.每当他向XML文件添加新资源时,我都必须更新代码.显然不是太痛苦,但它仍然是好的,似乎它应该是可行的.
编辑:
以下关于ViewGroup.getChildCount()/ ViewGroup.getChildAt()的答案可以正常工作.但是,我还必须找到一种方法来实例化我的XML ViewGroup/Layout.为此,请尝试以下方法:
LayoutInflater li = MyActivity.getLayoutInflater();
ViewGroup vg = (ViewGroup) li.inflate(R.layout.main, null);
Run Code Online (Sandbox Code Playgroud) 有什么方法可以告诉powershell从使用正常语法格式化的字符串构造一个哈希表来内联创建哈希表?
例如,有没有办法做这样的事情:
$fooHashString = "@{key='value'}
$fooHash = TellPowershellToEvaluateSpecialStringExpressions($fooHashString)
$fooHash
Name Value
---- -----
key value
Run Code Online (Sandbox Code Playgroud)