0

EditText ウィジェットのテキストの長さを制限したいのですが、ユーザーが制限された長さよりも多くの文字を入力した場合、一種の警告ポップアップを表示したいのですが、ポップアップを表示できません。

入力中にポップアップが表示されないのが難点ですが、OnKeyListener や OnKeyDown を利用する方法を考えている方も多いのではないでしょうか。しかし、単語が構成されているときは、OnKeyListener や OnKeyDown には何も入力されないため、必要なときにポップアップを表示できません。

この問題を解決する賢いアイデアを持っている人はいますか?

4

2 に答える 2

1

You should be able to remove focus from the widget, and show your message.

   InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);  
   imm.hideSoftInputFromWindow(editTextField.getWindowToken(), 0); 
于 2010-03-17T10:17:12.737 に答える
0

OnKeyboardActionListener は、ソフトウェア キーボードを実装するためのものです。

お気づきのように、ソフトウェア キーボードを使用している場合、OnKeyListener と OnKeyDown は呼び出されません。これらは、多くの Android デバイスにはないハードウェア キーボードを使用している場合にのみ呼び出されます。

あなたがしようとしているのは、EditText 領域で発生している重要なイベントをキャプチャすることだと思います。この場合の最善の策は、ソフトウェア キーボード入力とハードウェア キーボード入力の両方を処理するために、 addTextChangedListener () メソッドを介してTextWatcherを登録することです。

Nexus One などの Android 2.1 以降の携帯電話では、テキストを入力する代わりに、音声認識を使用して EditText にテキストを入力するオプションがあることに注意してください。そうすれば、完全な単語や完全な文が一度に入力される場合があります。そのため、内容が変更された場合は、EditText フィールドの内容全体を確認する必要があります。

于 2010-03-17T13:49:11.543 に答える