私はAndroidで簡単なタイピングゲームを作成しています。私は物理的なキーボードからの入力を得るのに問題はないが、今はEditTextなしでソフトキーボードを表示しようとしている。これまでのところ、私は次のことを試してみた:onCreate()
でEditTextなしでソフトキーボードを使用できますか?
((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(keyboard_edittext, InputMethodManager.SHOW_FORCED); // SHOW_IMPLICIT also failed
2.この行::視界= "見えない" と、このラインと
1.のEditText
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
このメソッドは実際には画面の下部10%に空白のボックスを表示しましたが、キーボードは表示しませんでしたが、実行すると何もしません。 onCreate()
で
3.別の2行:これらのいずれかに
InputMethodManager m = (InputMethodManager)this.getSystemService (Context.INPUT_METHOD_SERVICE); m.toggleSoftInput(0, InputMethodManager.SHOW_IMPLICIT);
ありません運。 EditTextに焦点を当てずに、ソフトキーボードを表示して(onKeyUp
/onKeyDown
)使用することも可能ですか?
私が見ることができる唯一の方法は、ソフトキーボードの独自の実装を作成することです(つまり、ゼロから構築する)ことです。それを楽しみにしていない!
InputMethodManager im = (InputMethodManager)getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
im.showSoftInput(myView, InputMethodManager.SHOW_FORCED);
ソフトキーボードの表示を管理してもonKeyUp()/ Down()は呼び出されません。少なくともすべてのキーとすべてのAndroidバージョンで呼び出されるわけではありません。一部のAndroid(旧バージョン)では、onKeyDown()は数字キーによって呼び出されますが、文字はありません。それにもかかわらず、一般的に、ソフトキーボード入力を受け取るためにonKeyDown()を使用しても、望む結果には導かれません。これは、ハードキーボードを使用すると正しく機能します。 – ubuntudroid