ListView的id属性是'android.R.id.list'当我正确设置ListView ID时出错

时间:2011-03-31 05:17:29

标签: android listview android-resources

我有一个带有自定义适配器的Listview。我正在获得标准

Your content must have a ListView whose id attribute is 'android.R.id.list'

错误,但是,我的ListView设置了android:id="@android:id/list"值。这真的是我的头脑。任何建议?

main.xml中

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" style="@style/Layout">
    <ListView android:id="@android:id/list" style="@stlye/ListMenuView"></ListView>
</LinearLayout>

styles.xml

<resources>
    <style name="Layout" parent="@android:Theme">
        <item name="android:background">@drawable/background</item>
        <item name="android:scaleType">fitXY</item>
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">fill_parent</item>
        <item name="android:orientation">vertical</item> 
    </style>
    <style name="ListMenuView">
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:cacheColorHint">#00000000</item>
    </style>
</resources>

我的onCreate方法:

/** Called when the activity is first created. */
@Override
public void onCreate( Bundle savedInstanceState ) {
    super.onCreate( savedInstanceState );
    setContentView( R.layout.main );

    m_menu = new ArrayList<ListItemData>();
    populateMenu();


    this.m_adapter = new ListMenuAdapter( this, R.layout.list_item, m_menu );

    setListAdapter(this.m_adapter);
}

任何想法?

3 个答案:

答案 0 :(得分:24)

android:id="@android:id/list"完美无缺,我的问题是我有一个Splash屏幕继承了一个基类,该基类继承了 ListActivity 并且没有为splash定义 ListView 屏幕活动。我已将SplashScreen改为仅继承Activity。一切都按预期工作。

答案 1 :(得分:6)

我遇到了同样的问题。我扩展了Activity而不是ListActivity类,这解决了我的问题。

答案 2 :(得分:1)

你说你使用自定义适配器,但从代码我看不到这样的适配器。在这里,您可以下载整个Android项目http://blog.sptechnolab.com/wp-content/uploads/2011/02/listBlog.zip