Tôi có số này PopupMenu trong đơn đăng ký của mình và muốn biết khi nào đóng cửa. Với API14 + điều này thật dễ dàng khi thêm người nghe sa thải với setOnDismissListener()
. Nhưng, tôi cần biết khi nào PopupMenu bị đóng từ API11 +, vì vậy tôi không thể sử dụng trình nghe và cần một sự thay thế cho người nghe.Phát hiện thấy PopupMenu bị đóng ở cấp API 11
này tôi đã cố gắng đã đến:
- ghi đè các
dismiss()
phương pháp của PopupMenu, nhưng nó không được gọi khi nó được đóng lại. - sử dụng
PopupMenu.OnMenuItemClickListener
nhưng không được kích hoạt khi người dùng nhấp vào bên ngoài menu (để đóng cửa sổ) hoặc nhấp vào 'quay lại'.
Tôi không có bất kỳ ý tưởng nào khác để phát hiện rằng trình đơn đã bị đóng. Vì vậy, tôi hy vọng rằng ai đó có một thủ thuật thông minh. Nếu không tôi không thể sử dụng PopupMenu ...
Một chút hacky, nhưng bạn có thể đặt 'OnFocusChangeListener' từ chế độ xem hoặc nhóm xem cơ bản không? Tôi không chắc liệu nó có cháy hay không, thành thật mà nói, nhưng đó là điều đầu tiên tôi có thể nghĩ đến. Ngoài ra, bạn có thể nghe ở 3 điểm (menuItemClick, nút quay lại, onTouch của contentView), nhưng tôi chắc chắn rằng có một cái gì đó tốt hơn thế. – Geobits
@Geobits Cảm ơn ý kiến của bạn (Tôi đã không nghĩ về nó). Nhưng việc sử dụng 'OnFocusChangeListener' rất tiếc là không hoạt động. Tôi chỉ có một cái nhìn (mà tôi vẽ giao diện người dùng của tôi), và nó không có vẻ rằng nó bao giờ được tập trung (hoặc mất) nó ... – Veger