18

Androidで簡単なタイピングゲームを作成しています。物理キーボードからの入力に問題はありませんが、現在、EditTextなしでソフトキーボードを表示しようとしています。これまでのところ、私は次のことを試しました。

1. visible = "invisible"と次の行を含むEditText:

((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(keyboard_edittext, InputMethodManager.SHOW_FORCED); // SHOW_IMPLICIT also failed

2.:onCreate()のこの行

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);

このメソッドは、実際には画面の下部10%に空の白いボックスを表示しましたが、キーボードは表示しませんでしたが、今実行すると何も表示されません。

3.:onCreate()の別の2行

InputMethodManager m = (InputMethodManager)this.getSystemService (Context.INPUT_METHOD_SERVICE); m.toggleSoftInput(0, InputMethodManager.SHOW_IMPLICIT);

これらのいずれにも運がありません。EditTextに焦点を合わせずにソフトキーボードを表示する(そしてonKeyUp/を使用する)ことさえ可能ですか?onKeyDown

今のところ、私が見ることができる唯一の方法は、これにアプローチすることです。ソフトキーボードの独自の実装を作成することです(つまり、最初から構築することです)。それを楽しみにしていません!

4

5 に答える 5

5

次のコードは私のために働きます:

 InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
 imm.toggleSoftInput (InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);

「メニュー」ボタンを押すと、onKeyUpハンドラーでこのコードを使用します。

于 2011-08-05T09:46:18.300 に答える
5

使用する代わりに、EditText にvisibility="invisible"設定できます。android:alpha="0"したがって、まだ EditText が必要ですが、表示されず、ソフトキーボードから入力を取得できます。onKeyListener()

于 2012-11-26T08:06:24.660 に答える
2

ビューのソフト キーボードを有効にしてください。

setFocusable(true);
setFocusableInTouchMode(true);

次に呼び出します。

InputMethodManager mgr = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
mgr.showSoftInput(this, InputMethodManager.SHOW_IMPLICIT);
于 2012-02-11T00:58:28.323 に答える
2

次を使用して、ソフトキーボードを強制的に表示できます。


InputMethodManager im = (InputMethodManager)getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
im.showSoftInput(myView, InputMethodManager.SHOW_FORCED);

于 2011-01-02T17:52:21.943 に答える
1

ランドスケープ モードで作業している場合、ソフト入力によって独自のテキスト入力フィールドが作成され、すべてのハードワークが台無しになることに注意してください。この動作を防止できます。

// This makes us remain invisible when in landscape mode.
setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI);

非表示の EditText を設定した場合は、作成したままになります。

于 2013-04-12T23:39:27.610 に答える