2014-07-17 54 views
0

我有2個EditText字段,我有用戶填寫,然後是DatePicker。我想盡快隱藏鍵盤爲用戶觸摸的DatePicker(如鍵盤覆蓋保存/取消按鈕。)只要用戶觸摸DatePicker,就隱藏鍵盤

dpDate.setOnTouchListener(new View.OnTouchListener() { 
      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       hideSoftKeyboard(); 
       return false; 
      } 
     }); 

public void hideSoftKeyboard() { 
     if(getCurrentFocus()!=null) { 
      InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); 
      inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); 
     } 
    } 

這是目前我有什麼,但是,它並不顯得加工。當我觸摸DatePicker時,點擊它,任何東西......鍵盤都不會消失。

任何幫助表示讚賞!

編輯: 佈局如下

Amount: (EditText) 
Memo: (EditText) 
Date: (DatePicker) 
-------------------- 
Cancel   OK 

當用戶觸摸日期選擇器更改日期,我立刻想鍵盤消失。

+0

我建議你使用Button而不是EditText。 –

+0

?我在我的問題中解釋了一點點 – Rob

+0

EditText和DatePicker不協調。當點擊顯示日期選擇器並將日期選擇器結果設置爲按鈕文本時,請使用按鈕。 –

回答

0

所以你可能只需要做Context.INPUT_METHOD_SERVICE而不是INPUT_METHOD_SERVICE

+0

沒有運氣。作爲一個便箋,hideSoftKeyboard()確實可以隱藏鍵盤的其他內容,但是,它看起來像日期選擇器onTouch甚至沒有實際觸發 – Rob

+0

嘗試使用'.setOnClickListener'和'OnClickListener()' –

+0

我剛剛得到解決方法OnTouchListener() – Rob