Tôi đang phát triển và ứng dụng Android sử dụng SDK 1.6. Tôi đang sử dụng TimePicker
và tôi không muốn bàn phím mềm xuất hiện khi bạn nhấp vào các chữ số trong số TimePicker
. Tôi chỉ muốn thay đổi TimePicker
bằng các nút dấu cộng và trừ. Tôi đã thử sử dụng android:focusable="false"
và android:focusableInTouchMode="false"
hy vọng những người sẽ làm điều đó, nhưng họ dường như không làm bất cứ điều gì. Có cách nào để làm việc này không?Tắt nhập bằng bàn phím trên Android TimePicker
Trả lời
cố gắng sử dụng:
myTimePicker.setDescendantFocusability(TimePicker.FOCUS_BLOCK_DESCENDANTS);
để vô hiệu hóa tập trung vào các văn bản lượt xem của NumberPickers nội bộ
Bạn có thể làm điều này:
InputMethodManager imm =
(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
Vui lòng tham khảo cho câu hỏi này cũng như:
Điều này không hiệu quả với TimePicker Tôi cũng đã làm điều đó trước đó với một EditText.Ngoài ra, tôi không chỉ muốn một cách để ẩn bàn phím mềm, nhưng về cơ bản để làm cho EditTexts bên trong TimePicker không bao giờ có tiêu điểm Tôi chỉ wa nt các giá trị được thay đổi bằng cách sử dụng các nút dấu cộng và trừ, và tôi không muốn người dùng có thể nhấp vào khu vực nơi các con số và có con trỏ xuất hiện. Tôi đã cố gắng tìm ra cách để có được một tham chiếu đến những đứa trẻ bên trong TimePicker để làm điều này ... nhưng tôi không thể tìm ra cách. – ashughes
Điều này làm không hoạt động cho các điều khiển EditText ... Nếu bạn nhấn & giữ phím Menu trên EditText mà bạn đã đặt InputType.TYPE_NULL
và gọi là immhideSoftInputFromWindow(...)
, bàn phím mềm sẽ vẫn bật lên cùng với bản sao/dán Tùy chọn menu.
PS: điều này đã được đề cập đến bài trước về việc sử dụng InputtMethodManager, xin lỗi, tôi có nghĩa là để sử dụng nút "phản hồi" !! – Laurent
Không biết nếu điều này làm việc cho TimePicker, nhưng tôi thấy các paramter đúng để sử dụng để ngăn chặn bàn phím hiển thị khi tập trung một chỉnh sửa văn bản hoặc bằng cách sử dụng sao chép và dán đơn trên nội dung của nó:
Thứ nhất, bạn nên gọi setInputType(InputType.TYPE_NULL)
trên editText
.
Tiếp theo nhanh chóng InputTypeManager:
InputMethodManager imm =
(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
Và sau đó, hãy gọi hideSoftInputFromWindow()
trên đối tượng imm
, nhưng sử dụng InputMethodManager.HIDE_NOT_ALWAYS
như tham số thứ hai thay vì 0 (như khuyến cáo trong câu trả lời đầu tiên):
imm.hideSoftInputFromWindow(editText.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS)
Điều này sẽ ngăn bàn phím mềm xuất hiện khi nhấp/lấy nét điều khiển EditText này, ngay cả khi sử dụng phím menu để thực hiện thao tác sao chép/dán.
PS: nếu bạn muốn ngăn các thao tác sao chép/dán, bạn có thể gọi editText.setEditable(false)
nhưng sau đó bạn sẽ không thể thay đổi động nội dung của EditText.
Tôi chỉ cố gắng (nhắm mục tiêu 4.0.3)
myTimePicker.setDescendantFocusability(TimePicker.FOCUS_BLOCK_DESCENDANTS);
không thành công. Sau khi tìm kiếm google cho "BLOCK_DESCENDANTS TimePicker android không làm việc" i theo hit
http://code.google.com/p/android/issues/detail?id=38369
nơi bài cuối cùng, đó là bởi một "Dự án thành viên", khẳng định:
"focusability Hậu duệ đề cập đến khả năng của một điểm để lấy nét, như trong tập trung truyền tải bằng bàn phím, bi xoay hoặc d-pad. Nó không ảnh hưởng đến các sự kiện cảm ứng theo thiết kế.
Nếu bạn cần chặn sự kiện chạm từ chế độ xem hậu duệ, hãy cân nhắc ghi đè trênInterceptTouchEvent trong chế độ xem gốc và trả về true khi chặn sự kiện chạm. Điều này sẽ gây ra MotionEvents được gửi đến phụ huynh chặn cho đến khi con trỏ cuối cùng đi lên "
Another Way Thêm này trong XML của bạn:..
android:descendantFocusability="blocksDescendants"
XML:
<NumberPicker
...
android:descendantFocusability="blocksDescendants" />
- 1. Tắt Android Nhập phím bằng bàn phím mềm
- 2. Bàn phím tắt Android
- 3. Tắt bàn phím ảo trên NumberPicker
- 4. Tắt bàn phím <enter> phím
- 5. Android - Nhận bấm phím trên bàn phím
- 6. Nhập bằng bàn phím mức thấp trên Windows
- 7. Nhập bằng bàn phím Java Stream
- 8. Disable bàn phím ubuntu tắt
- 9. Ẩn bàn phím mềm trên phím tắt được thực hiện trong Android?
- 10. Ẩn bản xem trước phím trên bàn phím Android
- 11. Tắt nút gửi của bàn phím khi không có gì được nhập [Android]
- 12. Cách ẩn bàn phím khi nhập phím
- 13. Bàn phím Android. Phím nền
- 14. Bật/tắt bàn phím ảo
- 15. lực lượng bàn phím mở trên android
- 16. Phát hiện ngôn ngữ IME trên bàn phím trên Android
- 17. PhoneGap android: trường nhập chồng lên bàn phím
- 18. Android: ScrollView không cuộn bằng bàn phím ra
- 19. cách ẩn bàn phím sau khi nhập EditText trong Android?
- 20. Nguồn bàn phím Android
- 21. Nhận Bàn phím Vị trí Con trỏ Bàn phím Android
- 22. EditText ẩn bằng bàn phím khi android: gravity = "center" - Android
- 23. Ít được nhập bằng bàn phím từ stderr?
- 24. Bàn phím thân thiện với email trên Android trong trường nhập của webview
- 25. Android - phím và bàn phím tùy chỉnh
- 26. Phím tắt Bàn phím Chrome Remote Desktop cần thiết
- 27. Nhập bằng bàn phím sử dụng stdio.StandardIO trong python xoắn
- 28. Bàn phím shortcurts cho Android Emulator?
- 29. Textarea trong trình duyệt Android ẩn bằng bàn phím
- 30. Cách bật lên bàn phím Android "? 123"
Điều này cũng hoạt động cho DatePicker, chỉ cần sử dụng DatePicker.FOCUS_BLOCK_DESCENDANTS thay thế. – swanson
Chỉ cần sử dụng ViewGroup.FOCUS_BLOCK_DESCENDANTS .. Tất cả đều có cùng giá trị - __ - ' – Tobrun
Bạn cũng có thể sử dụng android: descendantFocusability = "blocksDescendants" trong xml. – Borzh