2

我有一個Dialog其中我有一個EditText。 我面臨的問題是:EditText鍵盤問題

1)。在此刻顯示Dialog鍵盤不會自己出現。所以我不得不以編程方式將鍵盤拉起來。

InputMethodManager immOnResume = (InputMethodManager) getActivity().getSystemService(
             Context.INPUT_METHOD_SERVICE); 
         immOnResume.showSoftInput(mEditText, 
           InputMethodManager.SHOW_FORCED); 

2)。在主屏幕中按下主屏幕鍵盤時仍然可見。我認爲,因爲我以編程方式使鍵盤上,然後我必須以編程方式隱藏鍵盤。

InputMethodManager immN = (InputMethodManager) getActivity().getSystemService(
            Context.INPUT_METHOD_SERVICE); 
        immN.hideSoftInputFromWindow(
          mEditText.getWindowToken(), 0); 

但這些也不起作用。 任何建議如何解決我的問題。

+2

鍵盤沒有消失,因爲你使用'InputMethodManager.SHOW_FORCED'。你應該使用'InputMethodManager.SHOW_IMPLICIT'來代替。 – Karakuri

+0

@Karakuri:感謝它爲我工作 – Vaibs

回答

0

嘗試

getWindow().setSoftInputMode (WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); 
+0

如果我按Home按鈕,怎麼辦? – Vaibs

+0

什麼都沒有。請先嚐試這種方式。在我的情況下,我正在處理一個帶有對話框主題的活動,並且按下主頁按鈕時隱藏了鍵盤。 – svennergr

+0

我試過,但它沒有工作。 – Vaibs

0

您可以使用myedittext.requestFocus()

當活動被銷燬時,鍵盤會自動消失。

+0

我已經在xml以及代碼中添加了請求焦點。 – Vaibs

0

如果你的UI是用XML,你可能會考慮加入requestFocus的標籤:

<EditText ...> 
    <requestFocus /> 
</EditText> 

打開你的對話框時,這反過來應該打開你的鍵盤應該觸發專注於你的EditText場。

但是,如果你的UI程序來完成

editText.requestFocus()