質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

解決済

1回答

3402閲覧

Androidアプリでソフトキーボードでの文字の処理についてです。

karasawa

総合スコア12

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

0クリップ

投稿2016/02/20 10:13

###Androidアプリでソフトキーボードでの文字の処理についてです。
初質問で、至らぬ点がありましたらすみません。。

ソフトキーボードのデリートキーを押されたときの処理で、一文字削除するようにしたいのですが
以下のコードで実行すると,EditTextの中身が2文字削除されてしまいます。

###ソースコード

Java

1 2 3 editText.setOnKeyListener(new View.OnKeyListener() { 4 @Override 5 public boolean onKey(View v, int keyCode, KeyEvent){ 6 if(keyCode == KeyEvent.KEYCODE_DEL){ 7 String textNow = editText.getText().toString(); 8 if (textNow.length() > 0){ 9 editText.setText(textNow.substring(0,textNow.length()-1)); 10 editText.setSelection(textNow.length()-1); 11 } 12 } 13 return true; 14 } 15 }); 16

'editText.setText(textNow.substring(0,textNow.length()-1));'
の**-1**の部分がおかしいのかと思い、
'editText.setText(textNow.substring(0,textNow.length()));'
と書き直したところ、今度は一文字も削除されなくなりました。
自分でいろいろと試したのですが、ダメでした。

この場合、どこの部分が間違っているのでしょうか。

よろしければ、ご回答お願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

最初のコードであっています。ただし、onKeyは指が触れた時と指が離れた時の二回呼ばれます。そのため二文字消えていたのでしょう。
KeyEvent#getActionメソッドをして、ACTION_DOWNかACTION_UPのどちらかで処理をするようにしましょう。

投稿2016/02/20 12:24

yona

総合スコア18155

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

karasawa

2016/02/20 23:37

アドバイスしていただきありがとうございます。 ご指摘の場所を書き直したところ、無事に一文字だけの削除ができました。 本当に助かりました。 これからはドキュメントをしっかり読み込んで、androidの仕様を勉強したいと思います。 このたびはありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問