17

我有一个带有自定义适配器的 Listview。我得到了标准

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

错误,但是,我的 ListView 设置了一个android:id="@android:id/list"值。这真的让我很头疼。有什么建议吗?

主要的.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>

样式.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);
}

有任何想法吗?

4

3 回答 3

24

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

于 2011-03-31T07:07:42.550 回答
6

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

于 2012-03-09T12:09:31.737 回答
1

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

于 2011-03-31T05:31:03.043 回答