为什么Android软键盘没有响应EditText?

时间:2012-06-14 02:36:53

标签: android android-fragments android-edittext android-softkeyboard

我有一个SherlockFragmentActivity和一个位于TabManager中的SherlockFragment。在这个片段中,我在LinearLayout中有RadioButtons,CheckBoxes,Button和EditText。按下EditText时键盘有时不响应。

在2.1 AVD中,键盘响应不一致,在4.0 AVD中键盘根本不响应,而在设备上键盘响应不一致。有时按下其他对象然后激活显示键盘的能力。

以下是EditText的XML:

    <EditText       android:id="@+id/EditText1"
                    android:layout_width="100dp"
                    android:layout_height="wrap_content"
                    android:inputType="number"
                    android:text="20" >

我对这种不一致的活动感到困惑,而不是因为它不能在4.0 AVD上工作。任何有关为什么会发生这种情况的建议或者显示键盘的方法都会很棒。

1 个答案:

答案 0 :(得分:5)

您可以为edittext注册焦点侦听器,并在获得焦点时打开软键盘:

edit_Text.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
    if(hasFocus){
        ((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE))
.showSoftInput(edit_Text, InputMethodManager.SHOW_FORCED);
    }else
        Toast.makeText(getApplicationContext(), "lost the focus", 2000).show();
}
});

修改
对于emulator,我认为它不能保证。实际上我没有任何方式以编程方式显示软键盘。有时它出现,有时则没有。在Android 4.0.3的模拟器中,你可以看到一个符号通知栏而不是出现软键盘:
enter image description here

看看:
Event for Handling the Focus of the EditText
Forcing the Soft Keyboard open