2011-02-18 24 views
5

有沒有辦法將一個字符串附加到EditText值,以便附加的字符串不可編輯?將不可編輯的字符串附加到EditText

即說我有一個EditText的電子郵件地址,我想把一個電子郵件地址作爲一個單一的實體,而不是單個字符。因此,如果用戶刪除了電子郵件地址的最後一個字符,我想要刪除整個電子郵件地址而不是最後一個字符。

我一直在尋找Spannable,但看不到任何明顯的東西。這與Gmail和其他應用程序的功能類似。

+3

也許你可以只是有一個文本更改偵聽器,然後手動修改EditText的內容,然後將其替換爲你想要的。如果用戶輸入[email protected],那麼當長度減1時,將文本設置爲空字符串。不知道這是不是你想要的。 :) – Zarah

+0

@ Zarah:很好的答案(我贊成:-)。不過,也許你應該把它看作是「答案」,而不是「評論」。就目前而言,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上,可以將文本設置爲空字符串。當然,您必須先進行一些檢查,以確保用戶在應用更改之前輸入了完整的電子郵件地址。就像,也許確保用戶已經輸入了@字符,或者最後一個非空格字符後面有空格。