2012-11-12 43 views
2

我需要一個EditText作爲AlertDialog中的自定義標題視圖,由AlertDialog.Builder構建。設置和顯示這個EditText會彈出,就像粘貼文本(通過長按),包括被調用的EditorActionListener回調。帶有Edittext的AlertDialog作爲自定義標題視圖

但是沒有可見的軟輸入,因此添加文本相當不方便。我已經嘗試過撥打InputMethodManager.showSoftInput(),但沒有任何反應,無論是在創建/顯示對話框之前和之後,也沒有在OnClickListener中,也沒有在OnFocusChangeListener中,也沒有在額外的Runnable中。

是什麼讓我很沮喪是,我有很多其他的AlertDialogs有很多EditText s在他們的工作正常。自定義標題視圖和內容視圖之間有概念上的區別嗎?

回答

4

解決方案:

的AlertDialog的AlertController設置標誌來塊的軟輸入。因此,請執行以下操作:

AlertDialog.Builder builder = .... // initialize, set up 
AlertDialog d = builder.show(); 
d.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE); 
d.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM); 
d.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); 

現在,軟輸入顯示,調整對話框的大小和一切正常。 (感謝GrepCode的方式......)。

相關問題