1

在电子邮件撰写中,当用户在 to/cc/bcc 中键入/选择电子邮件 ID 时。假设有 7-8 个电子邮件 ID,现在用户想要删除第三个。用户很难转到第三个并删除那个。所以我认为解决方案是,

  1. 用户输入电子邮件 ID 并点击空格或逗号。
  2. 然后一个矩形框应该出现在背景上。
  3. 我想在那个矩形框的右上角有一个十字标记。
  4. 如果用户想删除第三个电子邮件 ID,那么他只需点击包含该电子邮件 ID 的第三个矩形的十字标记。

(请参考下图来自雅虎电子邮件作曲家)

雅虎邮箱

我需要类似的功能。我怎样才能在android中实现?我可以使用任何标准组件吗?目前,我正在为 To、Cc、Bcc 使用自动完成文本视图。请帮忙。先感谢您。

4

1 回答 1

1

我没有时间编写工作代码,但我会为您指明正确的方向。用标准组件中的文本做一些时髦的事情的关键EditText被称为“spans”。

建议的进攻计划:

  1. 添加一个TextWatcher到您的EditText,以便您知道文本何时更改。
  2. 每次文本更改时,扫描内容以查找与电子邮件地址匹配的任何内容(建议您为此使用正则表达式)。
  3. 对于每个匹配的电子邮件地址,Bitmap使用标准绘图 API(即创建Canvas、测量文本、绘制背景、绘制文本)生成一个等效项。
  4. 使用您的位图作为构造函数参数来实例化一个ImageSpan(这有点像整个事情的关键)。
  5. 用单个空格字符(例如)替换setSpan()文本中的电子邮件地址,并调用该单个字符来ImageSpan替换它的外观。
于 2011-10-23T16:24:51.093 回答