如何在android的EditText中替换最后输入的字符串?

时间:2015-07-09 09:37:30

标签: java android arrays string android-edittext

我从sqlite数据库中获取了两个字符数组。一个数组包含普通字体字符,另一个数组包含样式字体字符。

问题是,当我选择普通字体字符数组并替换EditText中输入的字符时。它工作得很完美,但是在EditText中使用EditText中的另一个字体字符数组键入了某个字符。然后它替换EditText中旧的输入字符。

以下是我用来替换EditText中的字符的代码。

watcher = new TextWatcher() {

@Override
public void afterTextChanged(Editable s) {

}

@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {

}

@Override
public void onTextChanged(CharSequence ss, int start, int before,
int count) {
    edt.removeTextChangedListener(watcher);

    String str = edt.getText().toString();

    String a = styleArray.get(0);
    String b = styleArray.get(1);
    String c = styleArray.get(2);

    str = str.replaceAll("a", a);
    str = str.replaceAll("b", b);
    str = str.replaceAll("c", c);

    edt.setText(str);
    edt.addTextChangedListener(watcher);
    int position = edt.getText().length();

    Editable ed = edt.getText();

    Selection.setSelection(ed, position);
}
};

从数据库中获取的两个数组是:

a. {a,b,c}
b. {ⓐ, ⓑ, ⓒ}

示例:当我选择第一个数组{a,b,c}时,在EditText框中输入的文本是" abc"。从这里可以。但是当我选择另一个字体字符数组{ⓐ,ⓑ,ⓒ}并在edittext中输入文本时,结果必须是这个"abcⓐⓑⓒ"。而不是这个结果"abcⓐⓑⓒ"我正在"ⓐⓑⓒⓐⓑⓒ"。它还会替换旧输入的字符。那么,这背后的逻辑是什么?我尝试了很多,但没有找到解决方案。

0 个答案:

没有答案