Android,无法使用InputMethodManager使键盘可见

时间:2013-10-20 14:47:40

标签: android keyboard android-edittext

我无法在editText上动态显示键盘。

            //should show the Keyboard
        editText.setFocusableInTouchMode(true);
        editText.requestFocus();

        final InputMethodManager mgr = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
        mgr.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);



            //or this also does not work
        mgr.toggleSoftInputFromWindow(editText.getWindowToken(),InputMethodManager.SHOW_FORCED ,InputMethodManager.HIDE_IMPLICIT_ONLY);

这是EditText的xml-Code:

        <EditText 
            android:id="@+id/searchHeaderView"
            android:textSize="13dip"
            android:layout_marginLeft="10dip"
            android:layout_marginRight="10dip"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:padding="5dip"
            android:background="#00000000"
            android:hint="@string/searchViewHint"

            />

在另一个Activity的同一个应用程序中,它适用于另一个EditText。

1 个答案:

答案 0 :(得分:0)

以下是一些尝试:

一,确保editText实际上获得焦点。添加一个OnFocusChangeListener,然后在侦听器中放置一个断点或生成一些跟踪输出。

二,在请求焦点和显示键盘之间放一个延迟。像这样:

post (new Runnable ()
{
  @Override
  public void run()
  {
    final InputMethodManager mgr = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
    mgr.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
  }
});