Android系统。按标签查找视图

时间:2014-06-09 08:04:50

标签: android view tags find

我有一个动态创建的视图,想要通过标记找到它,这可能吗? 我知道函数findViewById,是否有类似的标签?

3 个答案:

答案 0 :(得分:19)

LinearLayout linLayout = (LinearLayout)findViewWithTag("layout1");

但我认为你不需要动态视图的标签。您可以通过以下代码

来检索动态资源
for (int i=0; i < total_resource; i++) {
  //retrieve id dynamically
  int id = getResources().getIdentifier("resource"+i, "id", getPackageName());
  TextView myText = (TextView) findViewById(id); // get the element
}

答案 1 :(得分:1)

创建ids.xml以存储您的ID:

<?xml version="1.0" encoding="utf-8"?> <resources> <item type="id" name="component1" /> <item type="id" name="component2" /> <item type="id" name="component3" /> </resources>

设置为动态创建的组件,如:

Button1.setId(R.id.layout1); buttom2.setId(R.id.layout2); button3.setId(R.id.layout3);

另一种方法是在动态创建

时为组件设置标记
button1.setTag(1);

使用getTag()获取该组件

答案 2 :(得分:1)

您可以在其他视图中按标签查找。

说,您拥有LinearLayout,其中包含几个按钮,您可以将它们动态放置在其中,并为每个按钮分配标签。您必须先通过id找到该LinearLayout b / c的ID。然后在该LinearLayout视图内按标签查找按钮:

LinearLayout ll=(LinearLayout)findViewById(R.id.mylinearlayout);
Button btn= (Button)ll.findViewWithTag("mybtntag");//tag must be string