在Android中查找大多数视图时,通常可以使用findViewById(R.id.my_id)
,其中ID在XML文件中看起来像android:id="@+id/my_id"
。
使用任何类型的ListView时,我们必须使用findViewById(android.R.id.my_id)
,而在XML中我们使用android:id="@android:id/my_id"
。
有人可以向我解释为什么会这样,为什么会有所作为?
谢谢!
答案 0 :(得分:2)
当使用任何类型的ListView时,我们必须使用findViewById(android.R.id.my_id),在XML中我们使用android:id =“@ android:id / my_id”。
不,你没有。事实上,你最有可能不会编译。
如果您继承自ListActivity
或ListFragment
,等等类,则需要使用框架定义的@android:id/list
这些类将管理的android.R.id.list
的/ ListView
标识符。这样ListActivity
或ListFragment
可以找到您希望它为您管理的ListView
。
在任何其他情况下,欢迎您将ListView
命名为任何您喜欢的名称,就像任何其他小部件或容器一样。
答案 1 :(得分:0)
在自定义视图中,您通常会定义自己的ID @+id/your_own_id
。库中的元素使用相同的表示法。但是,SDK中的元素使用android
前缀。
如果您在布局中加入ListView
,则通常会为其指定标准ID @android:id/list
。某些SDK类需要标准ID。例如,如果您有ListFragment
的自定义布局,则布局必须包含带有标准ID的ListView
元素。