Skip to content

Latest commit

 

History

History
13 lines (10 loc) · 987 Bytes

README.md

File metadata and controls

13 lines (10 loc) · 987 Bytes

AtDemo

一个模拟新浪微博手机客户端的@某个用户功能的Demo

实现的功能

  1. 点击“@”按钮会弹出用户列表界面
  2. 在用户列表界面选中一个用户会在输入框的光标位置插入“@”+用户名
  3. 点击“预览效果”可以预览输入框中的文本的显示效果,每个“@”的对象都可以点击
  4. 点击“预览数据”可以预览模拟发送给后台的数据,Demo中假定了每个“@”对象的格式为<编号,名称>。这个可以根据实际情况随意扩展。
  5. 重写了输入框的删除事件,处理删除时遇到“@”对象时需要整个删除的逻辑。

实现的思路

实现了一个继承自ClickableSpan的类MySpan,让其持有一个User对象用来存储用户相关的信息。每次点击“@”按钮并选中一个用户时,向EditText中的光标位置插入字符串“@”+用户的昵称,并且将这个字符串绑定到一个包含了该用户的MySpan对象。