由于 afterTextChanged,我的应用程序因输入字段中的退格键而崩溃,我该如何处理此代码的退格键
My apps crash due to hit backspace in inputfield due to afterTextChanged , how can i handle backspace for this code
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 的代码,当检测到 space 时,它会将前一个单词更改为其标准形式,但是当用户写一些东西并试图删除或回击时space然后应用程序由于这种方法崩溃请告诉我如何处理回来space
编辑文本为空时崩溃,因为在空字符串上使用子字符串方法。
if (f.substring(f.length() - 1).equals(" ")) {
这样替换:
if (f.length() > 0 && f.substring(f.length() - 1).equals(" ")) {
如果有问题请告诉我。
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 的代码,当检测到 space 时,它会将前一个单词更改为其标准形式,但是当用户写一些东西并试图删除或回击时space然后应用程序由于这种方法崩溃请告诉我如何处理回来space
编辑文本为空时崩溃,因为在空字符串上使用子字符串方法。
if (f.substring(f.length() - 1).equals(" ")) {
这样替换:
if (f.length() > 0 && f.substring(f.length() - 1).equals(" ")) {
如果有问题请告诉我。