我的应用适用于 Android 2.2 及更高版本。在其中,我使用ActionbarSherlock来允许对 3.0 之前的设备使用操作栏。我在操作栏中使用了 EditText 来允许用户输入文本以进行搜索。
Using the emulator, with Android 4.0 and 4.1 (I have not tried 3.x because it's not a tablet app), when the EditText is selected, the soft keyboard pops up as desired. 但使用 Android 2.2 或 2.3.3 时并非如此,它只是不显示。
EditText 的代码很简单:
item.setActionView(R.layout.collapsible_edittext);
etInput = (EditText) item.getActionView().findViewById(R.id.etInput);
etInput.requestFocus();
布局:
<?xml version="1.0" encoding="utf-8"?>
<EditText xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/etInput"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/search_hint"
android:lines="1"
android:maxLines="1"
android:inputType="textFilter|textNoSuggestions"
android:imeOptions="actionSend"/>
现在,我尝试在 之后立即使用此代码段专门显示软键盘etInput.requestFocus();
,但没有任何区别:
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(etInput, InputMethodManager.SHOW_IMPLICIT);
我试图弄清楚这是 ActionbarSherlock 的问题还是更普遍的 Android 问题。我已经浏览了许多关于在 Activity 中强制软键盘显示的文章,但还没有找到解决方案。
谢谢