由于afterTextChanged导致我的应用程序因输入字段中的命中退格而崩溃,我如何处理此代码的退格

时间:2017-04-09 09:45:56

标签: java android android-textwatcher addtextchangedlistener

public void afterTextChanged(Editable editable) {

    String f = y.getText().toString();

    String[] data2 = f.split(" ");

    if (f.substring(f.length() - 1).equals(" ")) {
        StringBuilder M = new StringBuilder();
        String z = y.getText().toString();
        String[] data1 = z.split(" ");
        {
            String last = order(data1[data1.length - 1].toString());

            data1[data1.length - 1] = last.toString();

            for (int i = 0; i < data1.length; i++) {

                M.append(data1[i]);
                M.append(" ");

            }

            y.removeTextChangedListener(this);
            y.setText(M.toString());
            y.setSelection(y.getText().length());
            y.addTextChangedListener(this);

        }
    }
}

这是我的afterchangetext的代码,当检测到空格时,它将前一个单词更改为其标准形式但是当用户写一些内容并尝试删除或点击退格键时,应用程序因此方法崩溃请告诉我如何处理退格

1 个答案:

答案 0 :(得分:0)

由于在空字符串上使用了substring方法,因此编辑文本为空时崩溃。

if (f.substring(f.length() - 1).equals(" ")) {

像这样替换:

if (f.length() > 0 && f.substring(f.length() - 1).equals(" ")) {

如果它有问题,请告诉我。