17

カスタムアダプタ付きのリストビューがあります。私は標準を得ています

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

エラーが発生しましたが、MyListViewに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);
}

何か案は?

4

3 に答える 3

24

android:id="@android:id/list"完全に機能します。私の問題は、ListActivityを継承している基本クラスを継承し、スプラッシュ画面アクティビティ用にListViewが定義されていないスプラッシュ画面があったことです。アクティビティを継承するようにSplashScreenを変更しました。すべてが期待どおりに機能します。

于 2011-03-31T07:07:42.550 に答える
6

私は同じ問題に直面していました。ListActivityクラスの代わりにActivityを拡張しましたが、これで問題が解決しました。

于 2012-03-09T12:09:31.737 に答える
1

カスタムアダプタを使用しているとのことですが、コードからはそのようなアダプタがわかりません。ここでは、Androidプロジェクト全体をダウンロードできます。http://blog.sptechnolab.com/wp-content/uploads/2011/02/listBlog.zip

于 2011-03-31T05:31:03.043 に答える