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,且这个字符为@