@功能的逻辑判断(原创)


 1 et_txt.addTextChangedListener(new TextWatcher() {
 2             // 判断何时弹出@选择成员的界面的逻辑:判断增加的字符个数是1,记录下变化前的位置,最后判断增加的这个字符是否是@字符即可
 3             int addlength = 0;
 4             int startposition = 0;
 5 
 6             @Override
 7             public void onTextChanged(CharSequence s, int start, int before, int count) {
 8                 //start 变化的起始位置
 9                 //before减少的字符数
10                 //count 增加的字符数
11                 //s变化后的字符
12             }
13 
14             @Override
15             public void beforeTextChanged(CharSequence s, int start, int count, int after) {
16                 // start 变化的起始位置
17                 // count减少的字符数
18                 // after增加的字符数
19                 // s变化前的字符
20                 addlength = after;
21                 startposition = start;
22             }
23 
24             @Override
25             public void afterTextChanged(Editable s) {
26                 if (chatroom_type != null && chatroom_type.equals(ConsUtil.dg_type_group) && (addlength == 1)
27                         && (s.toString().substring(startposition, startposition + 1).equals("@"))) {
28                     // TODO 输入@出现选择群成员界面
29                     showGroupMembersChose();
30                 }
31 
32             }
33         });


 

判断的简单意思就是增加的字符个数是1,且这个字符为@

原文地址:https://www.cnblogs.com/dongweiq/p/4037462.html