2011-01-22 56 views
2

每當我嘗試運行我的應用程序,以下異常被拋出:爲什麼我的Android應用程序不斷告訴我,當它已經被定義時,我需要定義一個ListView ID?

01-22 00:40:51.868:ERROR/AndroidRuntime(2219):了java.lang.RuntimeException:無法啓動活動ComponentInfo {[節錄]}:了java.lang.RuntimeException:你的內容必須有一個ListView其id屬性爲 'android.R.id.list'

這裏是有問題的ListView中的標記:

<ListView 
android:id="@+id/list" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:dividerHeight="1px"></ListView> 

所以,因爲id被明確定義爲「list」,這裏給出了什麼?在過去的幾個小時裏,我已經多次運行我的代碼,試圖追蹤這個原因,我很難過。任何人都可以提供任何指針?

+0

你能不能請求xml的粘貼代碼,你定義了listview和jave文件的代碼,這樣你就可以得到這個id了。 – 2011-01-22 08:59:43

回答

-1

嗨託德 無論你給XML中的列表視圖的ID 這個ID你想在Java類中聲明。在XML

示例代碼 &在java類

的ListView列表=(ListView中)findViewById(R.id.list);

0

我想你有意外導入android.R包。

刪除導入,你應該沒問題。

5

可能是你ComponentInfo類的擴展因此ListActivity確保您ListView對象必須具有以下屬性在佈局XML文件:

android:id="@android:id/list" 
3

其實有android.R.id.list之間的」差異「和簡單的 」R.id.list「

<ListView android:id="@android:id/list" /> 

是不一樣的列表,

<ListView android:id="@+id/list" /> 

第一個在android框架中有一個預定義的id,這意味着有些東西是在後臺爲你自動創建的。考慮下面的例子:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:width="match_parent" 
    android:height="match_parent"> 

    <ListView 
     android:width="match_parent" 
     android:height="match_parent" 
     android:id="@android:id/list" /> 

    <TextView 
     android:width="wrap_content" 
     android:height="wrap_content" 
     android:id="@android:id/empty" 
     android:text="You don\'t have any items yet." /> 
</LinearLayout> 

鑑於上述佈局在XML和你對應的Java類擴展ListActivity,TextView的會自動顯示了您,當您的列表沒有任何項目,它也將在列表獲得第一個項目時自動隱藏。

+1

如果你測試你是真正的XML,你會發現它實際上是@namespace:name/ressource - >「@android:id/list」。你應該編輯你的答案並修復所有的@ id/android:。這是錯誤的 – 2011-01-22 10:13:05

相關問題