今天产品要求实现@人名功能,该死的没写过,百度了半天也没有介绍的没办法只能自己写了。
首先第一步就是生成@人名格式:
String text ="@"+ senderName +" ";
当@人名生成之后,EditText的光标应该位于@人名的后面,此时引用EditText的一个属性:
setSelection()====>设置光标出现的位置
EditText中有一个方法addTextChangedListener,应用该方法目的就是为了当删除@人名的时候讲EditText设置为空
edit_context.addTextChangedListener(new TextWatcher() {
@Override
//在EditText内容改变之前
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
//在EditText内容改变时
public void onTextChanged(CharSequence charSequence, int i, inti 1, int i2) {
}
@Override
//在EditText内容改变之后
public voidafterTextChanged(Editable editable) {
String s = editable.toString();
//判断是否@人名
inti = s.indexOf("@");
//i==-1表示,没有@人名
if(i != -1)
if(!s.equals(""))
//判断当前edittext内容的长度是否小于@人名的长度,如果小于@人名长度此时正在执行删除则将edittext设置为0
if(s.length()
edit_context.setText("");
}
}
});