在github上找到的一个仿微博控件,自己加以完善,实现了用户输入的时候自动识别是否输入了标签 public class TagEditTextView extends AppCompatEditText { private int preTextLength = 0; // 默认,话题文本高亮颜色 private static final int FOREGROUND_COLOR = Color.parseColor("#ffa500"); // 默认,话题背景高亮颜色 private static final int BACKGROUND_COLOR = Color.parseColor("#C8C8C8"); private TextWatcher textWatcher = new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { for (Topic t : tag_list) { if (s.toString().contains(String.format("#%s#", t.name)) && t.can_publish == 1) { setObject(t, true); } } } @Override public void afterTextChanged(Editable s) { Editable editable = getText(); int length = s.toString().length(); //删除 if (length < preTextLength) { int selectionStart = getSelectionStart(); int selectionEnd = getSelectionEnd(); /* * 如果光标起始和结束不在同一位置,删除文本 */ if (selectionStart != selectionEnd) { // 查询文本是否属于话题对象,若是移除列表数据 String tagetText = getText().toString().substring(selectionStart, selectionEnd); for (int i = 0; i < mTObjectsList.size(); i++) { Topic object = mTObjectsList.get(i); if (tagetText.equals(object.name)) { mTObjectsList.remove(object); } } return; } int lastPos &
Android ——仿微博添加标签话题的EditText
最新推荐文章于 2021-05-27 13:31:26 发布
本文介绍如何在Android应用中创建一个类似于微博的EditText组件,支持添加标签话题功能。通过自定义View和监听输入,实现实时高亮显示话题标签,提升用户体验。
摘要由CSDN通过智能技术生成