當我點擊edittextview然後有時顯示鍵盤或有時鍵盤不顯示。當我點擊android中的edittextview時鍵盤不顯示?
在Android 2.1的顯示它的鍵盤時,我在edittextview點擊
但是當我開始同它在Android 2.2的應用程序則不會顯示鍵盤。
幫助我如何顯示該問題。
當我點擊edittextview然後有時顯示鍵盤或有時鍵盤不顯示。當我點擊android中的edittextview時鍵盤不顯示?
在Android 2.1的顯示它的鍵盤時,我在edittextview點擊
但是當我開始同它在Android 2.2的應用程序則不會顯示鍵盤。
幫助我如何顯示該問題。
可能出現的情況:
1)單擊EditText時,通常會出現鍵盤。但是,如果您按下模擬器中的後退鍵按鈕,鍵盤(而不是屏幕鍵盤)變暗。
2)在代碼中,您可以通過設置標誌來禁用鍵盤上的EditText。
InputMethodManager inputmethodmgr= (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
inputmethodmgr.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
好的,這可能是一個遲到的反應,但它的工作。
我在android 2.1和2.3.x上遇到了這個問題(未在其他版本的SDK上測試過)。
我注意到一個奇怪的事情,當我點擊EditText無法打開鍵盤時,我按下BACK按鈕來顯示一個警告對話框,然後我取消(關閉)它,並再次單擊EditText,現在鍵盤被重新賦予生命。
,從我可以得出結論,鍵盤將始終顯示爲的EditText如果EditText上沒有以前自己的焦點(顯示在EditText上查看警報對話框會讓的EditText失去焦點)。
這樣稱呼了以下功能在您的EditText當它被帶到面前:
mEditText.clearFocus();
或
parentViewThatContainsEditTextView.clearFocus();
在我的情況下,它是在一個PopupWindow
,我只是需要調用popupWindow.setFocusable(true)
這裏有一個可能的解決方案:
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);
}
});
}
}
});
代碼是基於下一鏈接:
我對銀河S3類似的問題(顯示的EditText上的PopupWindow控制 - 鍵盤從未示出)。這解決了我的問題:
final PopupWindow popUp = new PopupWindow(vbl.getMainLayout());
[....]
popUp.setFocusable(true);
popUp.update();
我不想EditText使用editText.clearFocus()
失去焦點。來到這個解決方案。
@Override
public void onResume() {
super.onResume();
if (Build.VERSION.SDK_INT < 11) {
editText.clearFocus();
editText.requestFocus();
}
}
它就像一個魅力,如果你甚至想隱藏點擊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);
}
}
是的,但有了辦法,你會得到意想不到的行爲。例如,如果您在IMM被強制打開的情況下爲應用程序提供背景,則即使在主屏幕上,它也會保持打開狀態。 :) – worked