これはあなたの問題に関連しているのかどうかはわかりませんが、デバイスが時々「同期がとれない」ときに表示されてしまったときにInputMethodManager.toggleSoftInput()その逆。
は、私は事実を利用することによって、いくつかの成功を持っていたことIMM.showSoftInputは()は、キーボード、IMM.hideSoftInputFromWindow()意志確実に近いものを、表示されませんしながら、私が表示したいときキーボードIMM.hideSoftInputFromWindow()の後にIMM.toggleSoftInput()を呼び出し、IMM.hideSoftInputFromWindow()を単独で使用してキーボードを隠すようにしました。上記昨日は私が、私は(私は、showSoftinputを(平均)は仕事、我々はそれを期待だけではないやり方をしてソフトキーボードを扱ったかを再考製ライティング
[後日...]
それでは、これを行うより良い方法です:
まず、Androidがソフトキーボードを持つことができるように設定する必要があります。これは、InputMethodManagerのドキュメントに記述されています。私の場合はGLSurfaceViewに由来する単一のビューを持っているので、私は、コメントを追加しました:
setFocusable(true);
setFocusableInTouchMode(true);
コンストラクタにして、次の2つのオーバーライド:
@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs)
{
outAttrs.actionLabel = "";
outAttrs.hintText = "";
outAttrs.initialCapsMode = 0;
outAttrs.initialSelEnd = outAttrs.initialSelStart = -1;
outAttrs.label = "";
outAttrs.imeOptions = EditorInfo.IME_ACTION_DONE | EditorInfo.IME_FLAG_NO_EXTRACT_UI;
outAttrs.inputType = InputType.TYPE_NULL;
return new BaseInputConnection(this, false);
}
@Override
public boolean onCheckIsTextEditor()
{
return true;
}
を今私は、キーボードを表示することができます。
InputMethodManager mgr = (InputMethodManager)mActivity.getSystemService(Context.INPUT_METHOD_SERVICE);
mgr.showSoftInput(mView, 0);
キーの押下は、ビューのonKeyUp()およびonKeyDown()メソッドを介して報告されます。
hideSoftInputFromWindow()を使用して非表示にしています。
これは私が耳にした最善の提案です。残念ながら、実際に問題が発生しているデバイスではこれをテストすることはできません。なぜなら、これを試してみるつもりはないからです。それがうまくいくなら、私はこれを答えとしてマークします。ありがとう! –
これといくつかのバリエーションを試しましたが、問題はDroid Bionicにまだ表示されています。私が行ったことは、そのデバイス上のソフトキーボードを正常に開くことができなかったようです。 –
あなたはBionicにアクセスできますか?私はキーボードが "PocketSat3 Demo"(マーケットから無料)のためにそれに取り組んでいれば本当に好奇心が強いだろう。アプリはキーボード互換性テストで起動します。 – jimkberry