xml布局中的ListView R.id.XXX未检测到

时间:2014-02-03 13:26:48

标签: android xml findviewbyid

当从custom.xml文件桥接时,在Custom.Class中检测不到ListView ..我做了一些愚蠢的错误请纠正我..

public class Custom extends Activity {

    /* (non-Javadoc)
     * @see android.app.Activity#onCreate(android.os.Bundle)
     */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.custom);
        ListView lv=(ListView)findViewById(R.id.list); // list is not detected..showing error
    }
}

XML自定义

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ListView
        android:id="@id/android:list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>

4 个答案:

答案 0 :(得分:1)

替换

<ListView
    android:id="@id/android:list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >
</ListView>

<ListView
    android:id="@+id/list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >
</ListView>

每当您想id View时,您必须使用android:id="@+id/your_id

答案 1 :(得分:1)

android:id="@+id/list" 使用符号@ +添加新id

答案 2 :(得分:0)

更改以下内容 - android:id="@+id/list"

<ListView
    android:id="@+id/list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >
</ListView>

现在以下将检测清单 - ListView lv=(ListView)findViewById(R.id.list);

如果您想使用@android:id / ..引用Android系统中已定义的Android资源,同时访问您在项目中定义/创建的资源,则使用@id /.

检查此SO - Difference between "@id/" and "@+id/" in Android

因此,对于您的情况,您还可以按android:id="@android:id/list"定义列表视图 您也可以查看Android: id list view

答案 3 :(得分:0)

使用@id / android:list用于引用ListActivity中的默认列表。

您可以将Activity更改为ListActivity,并使用getListView()方法在活动代码中引用ListView。例如:

public class Custom extends ListActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.custom);
        ListView lv = getListView();
    }
}

或者其他人建议你可以使用:

android:id="@+id/list"

而不是:

android:id="@id/android:list"