我正在寻找linearlayout孩子的id,但是当调用getid时它会返回-1
这是我的代码。
LinearLayout layout = (LinearLayout)findViewById(R.id.schedul1);
for (int i = 0; i < layout.getChildCount(); i++) {
View child = layout.getChildAt(i);
int id=layout.getChildAt(i).getId();
我跟踪并发现子变量不为null但getId返回-1。 为什么? 任何关于获得linearlayout视图的子id的建议。
答案 0 :(得分:3)
除非您在布局XML中设置每个视图的ID,或者以编程方式创建View
,否则它将返回默认值(-1)。
观看可能具有与之关联的整数ID。这些ID通常在布局XML文件中分配,用于查找视图树中的特定视图。
http://developer.android.com/reference/android/view/View.html
Android源代码中getId()
的javadoc也清楚地说明了这种行为:
用于标识视图的正整数,如果视图没有ID,则为NO_ID
http://developer.android.com/reference/android/view/View.html#getId()
接下来,NO_ID
等于-1:
http://developer.android.com/reference/android/view/View.html#NO_ID