在我的xml文件中,我有下面的列表视图。
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/editText1"
android:layout_centerHorizontal="true"
android:layout_marginTop="14dp"
android:divider="@color/blue"
android:dividerHeight="2dip"
android:background="@drawable/list_divider"
>
</ListView>
在我的java类中,我尝试按如下方式访问视图
ListView myListView = (ListView) findViewById(R.id.list);
我收到错误的说法&#34;列表无法解析或不是字段&#34;。但是,如果我将ID更改为android:id="@+id/list"
如何通过这种方式android:id="@android:id/list"
使用ID来访问视图。
还介绍了两种定义ID的方法之间的基本区别。提前致谢
答案 0 :(得分:1)
假设您Activity extends ListActivity
,您可以使用便捷方法
ListView myListView = getListView();
否则您将使用android.R.id.list
还有两种定义ID
的方法之间的基本区别
@android:id
引用了内置的android resources
@+id
是用户定义的ID,会将其添加到R.java
文件,以便稍后使用@id
答案 1 :(得分:0)
你必须提到你的身份
机器人:ID =&#34; @ + ID /列表&#34;
@ + id / list将在你的app(=你的包)中创建一个名为&#34; list&#34;的资源ID。并给它一个唯一的ID。在代码中,这将是R.id.list。
@android:id / list将使用ID&#34; list&#34;从包android(在代码中,将是android.R.id.list。
答案 2 :(得分:0)
Android资源ID由xml中的@android:id/list
引用
和Java代码中的android.R.id.list
。
用户定义的id由xml中的@+id/list
引用
Java代码中的R.id.list
。 +
表示将在编译时生成资源id值。
id在资源文件中定义为<item type="id" name="list" />
在xml中引用为@id/list
,在Java中引用为R.id.list
代码