2016-10-26 176 views
0

我有一個editText和兩個按鈕,當我點擊取消,我有禁用編輯文本和隱藏鍵盤。鍵盤沒有被解僱,即使我試圖解僱Android

 case R.id.verify_cancel: 

hideMobileNoEditOption(); 
      showAndHideError(verify_layout, false); 
      showAndHideError(mobile_error_tv, false); 
      mobile_number_et.clearFocus(); 

這是hideMobileNoEditOption()的代碼;

mobile_number_et.clearFocus(); 
     AppUtil.hideSoftKeyboard(this); 
     mobile_number_et.setCursorVisible(false); 
     mobile_number_et.setFocusable(false); 
     mobile_number_et.setEnabled(false); 
     mobile_number_et.setTextIsSelectable(false); 
     mobile_number_et.setTextColor(ContextCompat.getColor(getBaseContext(), R.color.zero_title)); 

這是隱藏鍵盤的代碼。

InputMethodManager inputMethodManager = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE); 

     if (null != activity.getCurrentFocus()) { 

      inputMethodManager.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0); 

     } 

但是我的關鍵董事會沒有因爲上帝知道的原因而被解僱,任何人都可以請幫忙嗎?在此先感謝

+0

也許你應該問神,因爲他知道 –

+0

請大家幫忙找到解決方案。 –

+0

你確定你的'hideSoftInputFromWindow'方法被執行了嗎?如果在隱藏軟鍵盤之前清除焦點'(null!= activity.getCurrentFocus())''條件返回false並且不會隱藏鍵盤。 –

回答

1

試試這個,這個代碼是爲我工作

 /** 
    * For Hiding the keyboard 
    */ 

    public void hideKeyboard() { 
     View view = this.getCurrentFocus(); 
     if (view != null) { 
      InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
      imm.hideSoftInputFromWindow(view.getWindowToken(), 0); 
     } 
    } 
+0

這就像鍵盤正在隱藏並在一秒鐘內回來。 –

+0

您使用請求焦點還是焦點更改偵聽器?因爲它會打開鍵盤 –

+0

雅,當我清除焦點時,編輯文本再次獲得焦點。 –