因為你繼承了 **`ListActivity`** 或 **`ListFragment`**,它們內部預設查找 ID 為 `android.R.id.list` (即 `@id/android:list`) 的 `ListView`。
public class ListActivity extends Activity {
// ...
public ListView getListView() {
if (mList == null) {
mList = (ListView) findViewById(android.R.id.list); // 關鍵:硬編碼 ID
}
return mList;
}
// setContentView 後自動調用 getListView() 進行初始化綁定
}
ListActivity 還會自動查找 `@android:id/empty` 顯示空數據提示 View,若需自定義空視圖,同樣需使用此 ID 或不繼承 ListActivity。
`@id/android:list` 是 **ListActivity/ListFragment 框架契約** 的一部分。使用框架便利性 (自動綁定適配器、空視圖切換) 的代價是遵循其預設 ID 約定。若需完全自由,請直接使用基類 `Activity`/`Fragment` 手動綁定。