###EditTextでのカーソルの移動について
独学で勉強をしているものです。
EditTextにOnKeyListenerを登録した後に,
ソフトキーボードにある下記の画像の赤丸で囲まれているキーを押して、
EditTextのカーソルを一つ左、一つ右に移動させたいのですが、どのようにすればいいのでしょうか。
自分で書いたコードが下記になります。
java
1editText.setOnKeyListener(new View.OnKeyListener() { 2 @Override 3 public boolean onKey(View v, int keyCode, KeyEvent event) { 4 if((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_DPAD_LEFT)){ 5 //カーソルを左へ移動 6 String textNow = editText.getText().toString(); 7 if(textNow.length() > 0) { 8 Log.d("message", "左"); 9 editText.setSelection(textNow.length() - 1); 10 } 11 }else if((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_DPAD_LEFT)){ 12 //カーソルを右へ移動 13 String textNow = editText.getText().toString(); 14 if(editText.getSelectionEnd() != textNow.length()) { 15 Log.d("message", "右"); 16 editText.setSelection(textNow.length() + 1); 17 } 18 } 19 20 21 22 return true; 23 } 24 }); 25
これを実行した場合、
左カーソルキーを押したときは一度だけ左にカーソルを移動できるのですが、
もう一度押した場合は動きません。
右カーソルキーを押したときは、アプリ自体が落ちてしまいます。
どなたかこの処理を解決できるかた、アドバイスを頂ければ幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/02/21 07:44