按值而非位置設定Spinner 的選擇
更新視圖且Spinner 的選擇必須與資料庫中儲存的值相符時,傳統的做法是使用Adapter上的indexOf方法來定位對應的位置。然而,這種方法遇到了障礙,因為 Adapter 沒有提供這樣的方法。
要克服這個挑戰,更合適的方法是利用 ArrayAdapter 的 getPosition 方法。當與合適的 ArrayAdapter 配對時,此方法可以識別與特定值關聯的位置。
考慮一個場景,其中名為 mSpinner 的 Spinner 包含「某個值」的值。要定位並比較其位置,請按照以下步驟操作:
從資源檔案R.array.select_state 建立ArrayAdapter:
ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.select_state, android.R.layout.simple_spinner_item);
設定 Spinner 的適配器和 DropDownViewResource:
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mSpinner.setAdapter(adapter);
接下來,如果要比較的值(compareValue)不為null:
if (compareValue != null) {
int spinnerPosition = adapter.getPosition(compareValue);
mSpinner.setSelection(spinnerPosition);
}
透過採用此方法,可以根據資料庫中儲存的值準確地設定 Spinner 的選擇,從而在視圖更新期間提供無縫的使用者體驗。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3