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

the*_*son 16 android listview android-resources

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

Your content must have a ListView whose id attribute is 'android.R.id.list'
Run Code Online (Sandbox Code Playgroud)

但是,错误,我的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>
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

我的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);
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

the*_*son 24

android:id="@android:id/list"工作得很好,我的问题是我有一个Splash屏幕继承了一个继承ListActivity的基类,并且没有为启动画面活动定义ListView.我已将SplashScreen改为仅继承Activity.一切都按预期工作.


小智 6

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