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

Android Spinner 設定預設選項:使用 adapter.getPosition 取得索引並 setSelection

     編輯:程式設計綜合問答

需求

Spinner 由陣列資源建立,需根據資料模型 DEFAULT_CURRENCY_TYPE 設定預設選中項目,而非預設第一項。

解決

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
    this, R.array.currency_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);

// 關鍵:取得目標字串在 adapter 中的位置,再設定選中
String defaultValue = "USD"; // 或從模型取得
int position = adapter.getPosition(defaultValue);
if (position >= 0) {
    spinner.setSelection(position);
}

注意事項

  • adapter.getPosition() 回傳 -1 若找不到,需檢查避免 crash。
  • 若資料來源為物件列表,建議自訂 Adapter 並覆寫 getPosition(Object item) 比對邏輯。
  • Spinner 設定選中項目後,onItemSelected 會被觸發(視 API 版本),若不想觸發邏輯可加旗標判斷。

Kotlin 簡寫

val adapter = ArrayAdapter.createFromResource(this, R.array.currency_array, android.R.layout.simple_spinner_item).also {
    it.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
}
spinner.adapter = adapter
spinner.setSelection(adapter.getPosition(defaultValue).takeIf { it >= 0 } ?: 0)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved