我想在ViewGroup中获取一个名称是name的childView视图。nameView是GroupView中的第二个项目。我使用了以下的代码:
TextView nameView = (TextView)((ViewGroup)view).getChildAt(2);
然而,我想以后在nameView前再添加一些其它的View。那么上面的代码就无效了。因此我在想如何通过名称获得 ChildView,例如:
TextView nameView = (TextView)((ViewGroup)view).getChildByID(R.id.name);
我发现getChildByName("name")
不管用,我是否要查找一些像getChildByID
等同的方法。
你要找的方法是View.findViewById(id)。不需要添加到ViewGroup中。
TextView nameView = (TextView) view.findViewByID(R.id.name);
虽然你采纳答案了,但是我搜到这个问题,希望能再给你个参考:
如果你只是想通过他的ID找到 ViewGroup 的一个特殊的子类,那首先从ViewGroup得到一个引用:
ViewGroup vg = (ViewGroup)findViewById(R.id.myGroupLayout);
然后在现在的 ViewGroup 上调用findViewById()
View v = (TextView)vg.findViewById(R.id.name);