首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android 自定義 Adapter getView 不執行:資料源為空或未正確設定 Adapter

     編輯:程式設計綜合問答

郵箱自動完成下拉選單,自定義 `BaseAdapter` 但 `getView` 從未被呼叫。

常見原因

  1. `getCount()` 回傳 0(資料列表為空或未更新後 `notifyDataSetChanged()`)。
  2. `ListView`/`AutoCompleteTextView` 未 `setAdapter()` 或設在錯誤位置。
  3. `Adapter` 建構子未正確接收 `Context` 與資料列表。
  4. 使用 `ArrayAdapter` 時未覆寫 `getView` 且資料非字串。

排查步驟


// 1. 確認資料非空
List data = getSuggestions(input);
if (data.isEmpty()) return;
// 2. 建立 Adapter
ArrayAdapter adapter = new ArrayAdapter<>(context, android.R.layout.simple_dropdown_item_1line, data);
// 3. 設定給 AutoCompleteTextView
actv.setAdapter(adapter);
adapter.notifyDataSetChanged(); // 關鍵

參考:AutoCompleteTextView 完整範例

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved