Android thông thường Spinner sẽ bật lên danh sách các lựa chọn khi được nhấp. Tôi muốn ghi đè lên onClick này. Khi người dùng nhấp vào spinner trong một số trạng thái lỗi nhất định, tôi muốn hiển thị thông báo lỗi thay vì bật lên danh sách các lựa chọn. Hiện tại, tất cả những gì tôi có thể làm là đặt số OnClickListener, nhưng phương thức onClick của nó không cho phép tôi ngăn danh sách các tùy chọn xuất hiện.Cách ghi đè onClick trên Android Spinner?
Trả lời
Tôi sẽ cố gắng tạo lớp MySpinnerAdapter, thực hiện SpinnerAdapter. Trong MySpinnerAdapter của bạn, hãy xem phương thức getDropDownView. Tôi tin rằng đó là nơi chế độ xem bật lên được tạo. Bạn có thể kiểm tra trạng thái lỗi của mình và quyết định trả về một chế độ xem khác (mặc dù nó có thể ở một hàm khác -> kiểm tra tài liệu) ...
Dù sao, câu trả lời này không phải là bản sao chép. Chỉ cần cố gắng để nhổ một số ý tưởng mới
public class yourActivity extends Activity
{
private class MySpinnerAdapter implements SpinnerAdapter
{
// There are quite a lot of methods you need to implement...
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent)
{
// Check your error states here
if(<we have some kind of error>)
return specialErrorView // you get the idea
// return the default view with options
return normalView;
}
}
}
Mở rộng từ Spinner và ghi đè performClick() như thế này:
@Override
public boolean performClick() {
if(errorOccured) {
// show validation message
return true; // the event is handled by ourselves
}
else {
return super.performClick(); // show spinner dialog
}
}
Xem nguồn để biết thêm chi tiết. Hi vọng điêu nay co ich.
Thử đặt onTouchListener
và trong phương thức onTouch
hiển thị cửa sổ bật lên và trả lại true
để tiêu thụ sự kiện và ngăn không cho tuyên truyền cho chế độ xem (Spinner trong trường hợp này).
spinner.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// display your error popup here
return true;
}
});
Điều này sẽ dừng "danh sách thả xuống" xuất hiện.
Chỉnh sửa: quên đề cập đến bạn cũng có thể thực hiện kiểm tra trạng thái lỗi theo phương pháp onTouch
, vì vậy bạn không hoàn toàn tắt trình xoay vòng.
Nhận xét dưới chỉnh sửa là những gì tôi đã kết thúc. Tối thiểu xâm nhập để có được một số giới hạn kiểm soát đoạn chéo trong các tiểu bang khác nhau. – James
- 1. Nút Android onclick ghi đè
- 2. Phong cách android spinner
- 3. C++ Ghi đè ... ghi đè?
- 4. Ghi đè hoặc ghi đè
- 5. Bạn làm cách nào để ghi đè sự kiện onclick nội tuyến?
- 6. Android: Mở Spinner từ Nút
- 7. Ghi đè nút quay lại Android
- 8. Cách ghi đè Chứa()?
- 9. Ghi đè phương thức ghi đè (C#)
- 10. Ghi đè tác giả trên git merge
- 11. jquery ghi đè sự kiện
- 12. Điều khiển ghi đè như trên
- 13. JavaScript: Thêm trình xử lý onClick mà không ghi đè số hiện có
- 14. Android Spinner - Cách xóa nút radio?
- 15. Android: hai Spinner onItemSelected()
- 16. Sự khác biệt giữa ghi đè ảo, ghi đè, ghi đè mới và bị ghi
- 17. Ghi đè php.ini trên máy chủ
- 18. Ghi đè url trên Android không hoạt động trên chuyển hướng
- 19. ghi đè Adapter.getView
- 20. Android SearchView onclick
- 21. Ghi đè đối tượng ghi đè với các liên kết
- 22. Ghi đè đăng ký ghi đè Tạo Phương thức
- 23. Nút Android Onclick
- 24. Android onClick phương pháp
- 25. TextView - OnClick - Android
- 26. Android Spinner Size rất lớn
- 27. Gọi chức năng ghi đè từ chức năng ghi đè
- 28. Tại sao ghi đè == phải ghi đè bằng?
- 29. Ghi đè ToggleButton Style
- 30. Ghi đè các chủ đề Android mặc định
tốt hơn và đơn giản hơn – Entreco