Android软键盘为什么不响应EditText?

6
我有一个SherlockFragmentActivity和一个在TabManager中的SherlockFragment。在这个Fragment中,我有一组RadioButtons,CheckBoxes,一个Button和一个EditText,它们都在LinearLayout中。但是有时候当我点击EditText时键盘没有响应。
在2.1版本模拟器上,键盘会表现出不稳定性,在4.0版本模拟器上,键盘根本不响应,在真机上也有时候表现出不稳定性。有时候点击其他对象后,键盘才能显示出来。
以下是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
很高兴知道这不仅是我的问题。我以为我的编程很糟糕。但愿我能在文档中找到直接指令的参考,因为如果只在模拟器中发现错误,那么测试其他版本就会变得困难。 - JRomero
我现在遇到了这个问题!我的生产应用程序报告称软键盘没有打开。我无论尝试什么都无法复制这个问题,但是我知道这个问题存在,因为有用户向我展示了。 - AutoM8R
1个回答

7
你可以为你的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

请参考以下链接:
处理EditText焦点的事件
强制打开软键盘


非常感谢。现在它在我的设备上一直运行良好。虽然4.0 AVD仍无法启动键盘。我将尝试在ICS设备上运行并告诉您是否仍然正常工作。 - piz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接