今天產(chǎn)品要求實現(xiàn)@人名功能统台,該死的沒寫過,百度了半天也沒有介紹的沒辦法只能自己寫了。
首先第一步就是生成@人名格式:
String text ="@"+ senderName +"? ";
當(dāng)@人名生成之后,EditText的光標(biāo)應(yīng)該位于@人名的后面预鬓,此時引用EditText的一個屬性:
setSelection()====>設(shè)置光標(biāo)出現(xiàn)的位置
EditText中有一個方法addTextChangedListener,應(yīng)用該方法目的就是為了當(dāng)刪除@人名的時候講EditText設(shè)置為空
edit_context.addTextChangedListener(new TextWatcher() {
@Override
//在EditText內(nèi)容改變之前
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
//在EditText內(nèi)容改變時
public void onTextChanged(CharSequence charSequence, int i, inti 1, int i2) {
}
@Override
//在EditText內(nèi)容改變之后
public voidafterTextChanged(Editable editable) {
String s = editable.toString();
//判斷是否@人名
inti = s.indexOf("@");
//i==-1表示撬陵,沒有@人名
if(i != -1)
if(!s.equals(""))
//判斷當(dāng)前edittext內(nèi)容的長度是否小于@人名的長度珊皿,如果小于@人名長度此時正在執(zhí)行刪除則將edittext設(shè)置為0
if(s.length()
edit_context.setText("");
}
}
});