2011-02-18 15 views
5

EditText値に文字列を追加して、追加された文字列を編集できないようにしていますか?EditTextに編集不可能な文字列を追加する

つまり、電子メールアドレス用のEditTextがあるとします。メールアドレスを1文字ではなく1つのエンティティとして扱いたいとします。したがって、ユーザーが電子メールアドレスの最後の文字を削除した場合は、最後の文字ではなく電子メールアドレス全体を削除します。

私はSpannableを見てきましたが、何も明らかに見ることはできません。これは、Gmailやその他のアプリでの操作と似ています。

+3

テキストを変更してリスナーを変更した後、EditTextの内容を手動で変更して、必要なものに置き換えることができます。ユーザーが[email protected]と入力した場合、長さが1減少すると、テキストを空の文字列に設定します。それがあなたが欲しいものなのかどうかわからない。 :) – Zarah

+0

@Zarah:良い答え(私はそれをupvoted :-)。しかし、あなたは "コメント"の代わりに "答え"のように置いておくべきでしょう。今のように、Chris Banesがあなたのソリューションを「答え」として受け入れる方法はないようです(もちろん、彼が望むならば)。 – dbm

+0

@dbmねえ、ありがとう!クリスベネスが望んでいたかどうかは分かりませんでした。多くの人が私と同意したように見えるので、答えとしてそれを再投稿する。 :) – Zarah

答えて

4

私のコメントを回答として再投稿してください(私の提案を明確にするために言葉を修正してください)。

[onTextChanged](http://developer.android.com/reference/android/widget/TextView.html#onTextChanged(java.lang.CharSequence、int型、int型、int)を持っている) は、ユーザーの入力が通知されるように、あなたのEditTextに取り付けられています。 EditTextの内容の長さを確認し、1だけ減少すると、ユーザーが文字を削除したとみなすことができます。

ユーザが[email protected]と入力した場合は、onTextChangedにテキストを空の文字列に設定できます。もちろん、変更を適用する前に、ユーザーが完全な電子メールアドレスを入力したことを確認するためにいくつかのチェックを最初に行う必要があります。同様に、ユーザーが@文字を既に入力しているか、最後の空白以外の文字の後ろにスペースがあることを確認してください。

関連する問題