このコードが動作しない理由を理解できません。バックスペースとリターンキーだけが検出されます。リスナーは他のキーでは起動しません。私のデバイスはNexus Oneです。onKeyListenerが仮想キーボードで動作しない
アクティビティのOnKeyDownメソッドをオーバーライドしようとしましたが、それはさらに悪いことです。検出された唯一のボタンはハードウェア戻るボタンでした。
私はTextWatcherとonTextChangedを使用することを提案していますが、それは実際にはうまくいかない場合もあります。たとえば、テキストボックスが空の場合、ユーザーがBackSpace(Delete)ボタンを押しても検出されません。 これはどんなアイデアですか?
TextView txtInput = (TextView)findViewById(R.id.txtInput);
txtInput.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
makeToast(keyCode + " key pressed");
return true;
}
});
この問題では4時間を過ごしました。これは誰にも解決策がないようです。 OnKeyboardActionListenerの使用を提案している人はほとんどいませんが、使用方法の例は見つかりません。 – bobetko
ここに見つかった例:http://developer.android.com/resources/samples/SoftKeyboard/src/com/example/android/softkeyboard/SoftKeyboard.html – bobetko
ソフトキーボードの例が私にとってうまくいくかどうかはわかりません。私は別の入力方法を書いてはいけません。私は単に画面(デフォルトではアンドロイドキーボード)にデフォルトの入力方法を表示し、キーを押したままにします。なぜこれは大変な仕事なのでしょうか?私はイライラしている。 – bobetko