@android:eclipse无法识别id

时间:2015-04-08 20:59:21

标签: java android eclipse

在我的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的方法之间的基本区别。提前致谢

3 个答案:

答案 0 :(得分:1)

假设您Activity extends ListActivity,您可以使用便捷方法

访问它
ListView myListView = getListView();

否则您将使用android.R.id.list

访问它
  

还有两种定义ID

的方法之间的基本区别
  1. @android:id引用了内置的android resources
  2. @+id是用户定义的ID,会将其添加到R.java文件,以便稍后使用@id
  3. 进行访问

    See this post about more on that

答案 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 代码