0

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"

            />

別のアクティビティの同じアプリでは、別の EditText で動作します。

4

1 に答える 1

0

いくつかのことを試してみてください。

1 つ目は、editText が実際にフォーカスされていることを確認することです。OnFocusChangeListener を追加してから、リスナーにブレークポイントを設定するか、トレース出力を生成します。

2 つ目は、フォーカスを要求してからキーボードを表示するまでの間に遅延を置きます。このような:

post (new Runnable ()
{
  @Override
  public void run()
  {
    final InputMethodManager mgr = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
    mgr.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
  }
});
于 2013-10-20T18:19:52.650 に答える