2011-08-08 63 views

回答

0

可能出現的情況:

1)單擊EditText時,通常會出現鍵盤。但是,如果您按下模擬器中的後退鍵按鈕,鍵盤(而不是屏幕鍵盤)變暗。

2)在代碼中,您可以通過設置標誌來禁用鍵盤上的EditText。

InputMethodManager inputmethodmgr= (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
inputmethodmgr.hideSoftInputFromWindow(myEditText.getWindowToken(), 0); 
24

好的,這可能是一個遲到的反應,但它的工作。

我在android 2.1和2.3.x上遇到了這個問題(未在其他版本的SDK上測試過)。

我注意到一個奇怪的事情,當我點擊EditText無法打開鍵盤時,我按下BACK按鈕來顯示一個警告對話框,然後我取消(關閉)它,並再次單擊EditText,現在鍵盤被重新賦予生命。

,從我可以得出結論,鍵盤將始終顯示爲的EditText如果EditText上沒有以前自己的焦點(顯示在EditText上查看警報對話框會讓的EditText失去焦點)。

這樣稱呼了以下功能在您的EditText當它被帶到面前:

mEditText.clearFocus(); 

parentViewThatContainsEditTextView.clearFocus(); 
2

在我的情況下,它是在一個PopupWindow,我只是需要調用popupWindow.setFocusable(true)

3

這裏有一個可能的解決方案:

editText.setOnFocusChangeListener(new OnFocusChangeListener() { 
    @Override 
    public void onFocusChange(final View v, final boolean hasFocus) { 
     if (hasFocus && editText.isEnabled() && editText.isFocusable()) { 
      editText.post(new Runnable() { 
       @Override 
       public void run() { 
        final InputMethodManager imm = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE); 
        imm.showSoftInput(editText,InputMethodManager.SHOW_IMPLICIT); 
       } 
      }); 
     } 
    } 
}); 

代碼是基於下一鏈接:

http://turbomanage.wordpress.com/2012/05/02/show-soft-keyboard-automatically-when-edittext-receives-focus/

7

我對銀河S3類似的問題(顯示的EditText上的PopupWindow控制 - 鍵盤從未示出)。這解決了我的問題:

final PopupWindow popUp = new PopupWindow(vbl.getMainLayout()); 
[....] 
popUp.setFocusable(true); 
popUp.update(); 
3

我不想EditText使用editText.clearFocus()失去焦點。來到這個解決方案。

@Override 
public void onResume() { 
    super.onResume(); 

    if (Build.VERSION.SDK_INT < 11) { 
     editText.clearFocus(); 
     editText.requestFocus(); 
    } 
} 
1

它就像一個魅力,如果你甚至想隱藏點擊edittextView隱藏的情況。

textView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      displayKeyboard(); 
     } 
    }); 

private void displayKeyboard(){ 
    if (textView != null) { 
     InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
     imm.toggleSoftInputFromWindow(textView.getApplicationWindowToken(), InputMethodManager.SHOW_FORCED, 0); 
    } 
} 
+0

是的,但有了辦法,你會得到意想不到的行爲。例如,如果您在IMM被強制打開的情況下爲應用程序提供背景,則即使在主屏幕上,它也會保持打開狀態。 :) – worked

相關問題