web-dev-qa-db-ja.com

id属性が「Android.R.id.list」であるListViewListViewIDを正しく設定するとエラーが発生します

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

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);
}

何か案は?

16
thepearson

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

24
thepearson

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

6
Chetan

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

1
user609239