6

我在 TabManager 中有一个 SherlockFragmentActivity 和一个 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 上不起作用。任何关于为什么会发生这种情况的建议或显示键盘的方式都会很棒。

4

1 回答 1

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 的模拟器中,你可以在通知栏中看到一个符号出现的软键盘:
在此处输入图像描述

看:
处理EditText焦点的事件
强制软键盘打开

于 2012-06-14T03:24:09.103 回答