在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 = 0;
Android ——仿微博添加标签话题的EditText
最新推荐文章于 2021-05-27 13:31:26 发布
本文介绍如何在Android应用中创建一个类似于微博的EditText组件,支持添加标签话题功能。通过自定义View和监听输入,实现实时高亮显示话题标签,提升用户体验。

最低0.47元/天 解锁文章
209

被折叠的 条评论
为什么被折叠?



