一个模拟新浪微博手机客户端的@某个用户功能的Demo
- 点击“@”按钮会弹出用户列表界面
- 在用户列表界面选中一个用户会在输入框的光标位置插入“@”+用户名
- 点击“预览效果”可以预览输入框中的文本的显示效果,每个“@”的对象都可以点击
- 点击“预览数据”可以预览模拟发送给后台的数据,Demo中假定了每个“@”对象的格式为<编号,名称>。这个可以根据实际情况随意扩展。
- 重写了输入框的删除事件,处理删除时遇到“@”对象时需要整个删除的逻辑。
实现了一个继承自ClickableSpan的类MySpan,让其持有一个User对象用来存储用户相关的信息。每次点击“@”按钮并选中一个用户时,向EditText中的光标位置插入字符串“@”+用户的昵称,并且将这个字符串绑定到一个包含了该用户的MySpan对象。