我正在開發和使用1.6 SDK的Android應用程序。我正在使用TimePicker
,並且我不希望軟鍵盤在您點擊TimePicker
中的數字時出現。我只想要使用加號和減號按鈕更改TimePicker
。我已經嘗試過使用android:focusable="false"
和android:focusableInTouchMode="false"
,希望這樣做,但他們似乎沒有做任何事情。有沒有辦法做到這一點?在Android TimePicker上禁用鍵盤輸入
回答
嘗試使用:
myTimePicker.setDescendantFocusability(TimePicker.FOCUS_BLOCK_DESCENDANTS);
對文本禁用焦點內部號碼查看器
你可以這樣做:
InputMethodManager imm =
(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
請參考這個問題還有:
這對TimePicker不起作用,我之前用EditText做過,另外,我不只是想隱藏軟鍵盤,而是基本上讓TimePicker內的EditTexts永遠不會有焦點我只有wa nt使用加號和減號按鈕更改值,並且我不希望用戶能夠點擊數字所在的區域並且光標出現。我一直在試圖弄清楚如何獲得對TimePicker內部的這些孩子的引用來做到這一點...但我無法弄清楚如何。 – ashughes 2010-03-07 21:05:04
這確實無論是EditText上沒有工作控制......如果按&保持在其上已設置InputType.TYPE_NULL
,並呼籲immhideSoftInputFromWindow(...)
一個EditText,菜單鍵軟鍵盤仍然與複製/粘貼沿彈出菜單選項。
PS:這是指使用InputtMethodManager的上一篇文章,對不起,我的意思是使用「反饋」按鈕! – Laurent 2012-01-08 14:18:28
不知道這個工程的TimePicker,但我找到了正確的參數設置爲使用,以防止鍵盤使用其內容的複製和粘貼菜單聚焦編輯文字時顯示或:
首先,您應該致電撥打setInputType(InputType.TYPE_NULL)
。
接着實例化InputTypeManager:
InputMethodManager imm =
(InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
然後,呼叫hideSoftInputFromWindow()
的imm
對象上,但使用的InputMethodManager.HIDE_NOT_ALWAYS
作爲第二個參數,而不是0(如建議在第一個答案):
imm.hideSoftInputFromWindow(editText.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS)
即使使用菜單鍵執行復制/粘貼操作,單擊/調焦EditText控件時也會阻止軟鍵盤彈出。 PS:如果你想防止複製/粘貼操作,你可以調用editText.setEditable(false)
,但是你將不能動態地改變EditText的內容。
我只是試圖(目標4.0.3)
myTimePicker.setDescendantFocusability(TimePicker.FOCUS_BLOCK_DESCENDANTS);
沒有成功。對於「機器人TimePicker BLOCK_DESCENDANTS不工作」谷歌搜索後,我跟着命中
http://code.google.com/p/android/issues/detail?id=38369
在最後發表的文章,這是一個「項目成員」,規定:
「後代的可聚焦性是指一個視圖的能力使用鍵盤,軌跡球或d-pad進行焦點遍歷,不會受設計影響觸摸事件。
如果您需要阻止來自後代視圖的觸摸事件,請考慮在父視圖中重寫onInterceptTouchEvent,並在需要阻止觸摸事件時返回true。這將導致MotionEvents發送到攔截父,直到最後一個指針上升「
另一種方式您的XML補充一點:。
android:descendantFocusability="blocksDescendants"
XML:
<NumberPicker
...
android:descendantFocusability="blocksDescendants" />
- 1. Android禁用軟鍵盤輸入鍵
- 2. 禁用文本輸入的Android鍵盤[Emoji的鍵盤專用]
- 3. 如何在Android鍵盤中禁用語音輸入鍵
- 4. 禁用Android鍵盤
- 5. 禁用Android鍵盤
- 6. 在插入物理鍵盤時禁用Android鍵盤的情況
- 7. Android鍵盤。禁用鍵
- 8. 暫時禁用鍵盤輸入java
- 9. 在Android中爲EditText禁用硬鍵盤輸入
- 10. AS3禁用鍵盤文本輸入
- 11. 爲QFontComboBox禁用鍵盤輸入
- 12. 禁用鍵盤輸入排除退格
- 13. 禁用鍵盤上的鍵
- 14. 鍵盤輸入
- 15. 禁用EditText數組上的Android鍵盤
- 16. 軟輸入鍵盤與Android
- 17. 輸入法Android鍵盤
- 18. Android:非鍵盤輸入法
- 19. Android模擬器軟鍵盤輸入禁用
- 20. 後一些edittext輸入自動禁用android中的鍵盤
- 21. 禁用android鍵盤按鈕
- 22. OSX上的鍵盤輸入
- 23. 按鍵導航,按鍵盤上的事件輸入鍵盤上的輸入
- 24. 在jsp上禁用textarea的輸入鍵
- 25. 在android軟鍵盤中禁用/檢測鍵盤解鎖鍵
- 26. JS:鍵盤輸入:在輸入「*」(乘號)時輸入時禁用「8」
- 27. Android edittext鍵盤更改輸入鍵
- 28. 從TimePicker獲取輸入 - Android
- 29. touchEvent同時用軟鍵盤輸入android
- 30. 如何在android鍵盤中輸入Dot?
這也適用於DatePicker,只是使用DatePicker.FOCUS_BLOCK_DESCENDANTS來代替。 – swanson 2012-02-20 17:31:09
只需使用ViewGroup.FOCUS_BLOCK_DESCENDANTS ..它們都具有相同的值 - __ - ' – Tobrun 2014-08-06 11:00:17
您還可以在xml中使用android:descendantFocusability =「blocksDescendants」 。 – Borzh 2015-04-06 18:12:15