在學習 ListActivity 的 setListAdapter() 時,常見兩種寫法。本文驗證其等價性,並指出語法陷阱。
寫法 1:變量引用
ArrayAdapter<String> adapter = new ArrayAdapter<>(
this, R.layout.layout_nm, R.id.layout_idnm, items
);
setListAdapter(adapter);
寫法 2:匿名對象(含語法錯誤)
setListAdapter(new ArrayAdapter<String>(
this, R.layout.layout_nm, R.id.layout_idnm, items
);); // ← 多餘的分號導致編譯錯誤
adapter 狀態,適合複雜邏輯。notifyDataSetChanged()、過濾)時,保留變量引用(寫法 1)。理解等價性本質,根據業務場景靈活選擇,寫出更優雅的代碼。