【问题标题】:My apps crash due to hit backspace in inputfield due to afterTextChanged , how can i handle backspace for this code由于 afterTextChanged 在输入字段中按退格键,我的应用程序崩溃,我如何处理此代码的退格键
【发布时间】:2017-04-09 09:45:56
【问题描述】:
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 的代码,当检测到空格时,它将前一个单词更改为其标准形式,但是当用户写一些东西并尝试删除或点击退格键时,应用程序由于这种方法而崩溃,请告诉我如何处理退格

【问题讨论】:

  • 发布崩溃日志...
  • edittext为空时是否崩溃?
  • 没有,当我试图删除我输入的单词时,我输入的意思是按退格键
  • 异常调度完成信号。 04-09 05:52:07.572 2917-2917/com.example.mian.translatorapp E/MessageQueue-JNI:MessageQueue 回调中的异常:handleReceiveCallback 04-09 05:52:07.588 2917-2917/com.example.mian.translatorapp E/MessageQueue-JNI:java.lang.StringIndexOutOfBoundsException:长度=0; index=-1 @rafsanahmad007
  • 在哪一行?.....

标签: java android android-textwatcher addtextchangedlistener


【解决方案1】:

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

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

像这样替换:

if (f.length() &gt; 0 &amp;&amp; f.substring(f.length() - 1).equals(" ")) {

如果有问题请告诉我。

【讨论】:

  • 如果它对你有用,那么请将答案标记为正确。它对其他人和我也有帮助。
猜你喜欢
  • 2021-04-22
  • 2020-06-11
  • 2015-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-10
相关资源
最近更新 更多