【问题标题】:Append Non-Editable String to EditText将不可编辑的字符串附加到 EditText
【发布时间】:2011-02-18 10:00:27
【问题描述】:

有没有办法将字符串附加到 EditText 值,使附加的字符串不可编辑?

即假设我有一个用于电子邮件地址的 EditText,我想将电子邮件地址视为单个实体而不是单个字符。因此,如果用户删除了电子邮件地址的最后一个字符,我希望删除整个电子邮件地址而不是最后一个字符。

我一直在查看 Spannable,但看不到任何明显的东西。这类似于 Gmail 和其他应用程序的做法。

【问题讨论】:

  • 也许您可以只拥有一个文本更改侦听器,然后手动修改 EditText 的内容,然后将其替换为您想要的内容。如果用户输入 me@sample.com,那么当长度减 1 时,将文本设置为空字符串。不知道这是否是你想要的。 :)
  • @Zarah:很好的答案(我赞成 :-)。不过,也许你应该把它写成“答案”而不是“评论”。就像现在一样,Chris Banes 似乎没有办法接受您的解决方案作为“答案”(当然,前提是他愿意)。
  • @dbm 嘿,谢谢! :) 我不确定这是否是 Chris Banes 想要的。好像很多人都同意我的观点,所以重新发布它作为答案。 :)

标签: android android-edittext


【解决方案1】:

重新发布我的评论作为答案(并修改文字以使我的建议更清晰)。

有一个 [onTextChanged](http://developer.android.com/reference/android/widget/TextView.html#onTextChanged(java.lang.CharSequence, int, int, int)) 附加到您的EditText 以收到用户输入的通知。然后可以查看EditText的内容长度,如果减1,就可以假设用户删除了一个字符。

如果用户输入了me@sample.com,那么在您的onTextChanged 上,您可以将文本设置为空字符串。当然,您必须先进行一些检查,以确保用户在应用您的更改之前输入了完整的电子邮件地址。比如,也许确保用户已经输入了@ 字符,或者在最后一个非空格字符之后有空格。

【讨论】:

    猜你喜欢
    • 2012-05-03
    • 1970-01-01
    • 2013-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-29
    相关资源
    最近更新 更多