Tôi đang sử dụng máy quay số có số CursorAdapter
. Bây giờ khi tạo spinner (động) tôi muốn thiết lập một lựa chọn mặc định khác 0 (0 là mục đầu tiên trong danh sách CursorAdapter
)Android Spinner.setSelection() không hoạt động
Vì vậy, tôi có một setter cho công việc đó chỉ được gọi là sau khi đối tượng đã được tạo. Nhưng vì một lý do nào đó, không có vấn đề gì tôi vượt qua trong setter đó, 0 luôn luôn được chuyển đến phương pháp onItemSelected()
trong số OnItemSelectedListener
của Spinner.
HÃY BAO GIỜ nếu tôi chỉ đợi cho đến khi lựa chọn ban đầu đầu tiên xảy ra và chạy trình thiết lập lại, mọi thứ hoạt động tốt. Vì vậy, để làm cho nó rõ ràng hơn ở đây là những gì tôi nhìn thấy trong debugger:
- đối tượng (spinner) được tạo ra
- spinner nghe được gắn
- setter được điều hành, một số, cho phép nói 4 (các spinner chứa cách hơn 4 lựa chọn) được chuyển đến các phương pháp
setSelection()
- Chờ một chút
- vỚI DOANH NGHIỆP
onItemSelected()
được chạy lần đầu tiên, nhưng các vị trí nhất định với phương pháp đó là 0! - Chờ một chút THÊM
- một lần nữa chúng tôi chạy setter
- lại
onItemSelected()
đang chạy, thời gian này, các vị trí nhất định là 4 vì nó được cho là!
Hiện đã có dây. Có vẻ như không thể thiết lập spinner đó cho đến khi lựa chọn ban đầu đầu tiên, luôn là 0, được chạy. Vì vậy, tại sao nó là cách nó được và những gì tôi có thể làm gì để thiết lập các lựa chọn ban đầu?
Bạn có thể vui lòng đăng mã được sử dụng khi thiết lập Spinner không? Có vẻ như nó có thể là do bạn có một số mã sai thứ tự –
Câu trả lời này (trên một câu hỏi SO khác) đã làm việc cho tôi: http://stackoverflow.com/a/17370964/1617737 –