当逗号","我怎么能得到它?在编辑文本中输入。 这就是我在做什么
newCategryET.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence returnedResult, int start,
int before, int count) {
String result = returnedResult.toString();
String result2 = result.substring(result.length() - 2,
result.length() - 1);
if (result2.equals(",")) {
addCategoryToLayout(result.substring(0, result.length() - 1));
newCategryET.setText("");
return;
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void afterTextChanged(Editable s) {
}
});
每当按下逗号时,我想将编辑文本的文本添加到布局中 但我得到的数组索引超出了绑定异常。
任何帮助
这是我的logcat错误 -
java.lang.StringIndexOutOfBoundsException: length=1; regionStart=-1; regionLength=1
答案 0 :(得分:2)
您可以使用字符串的contains方法来检查字符串是否包含逗号
String.contains(",")
然后在逗号出现时使用字符串标记生成器分割字符串
答案 1 :(得分:2)
考虑输入第一个字符的情况(如q):
尝试从位置-1开始执行此子计划会导致您的异常。
此问题有几种更简单的解决方案 - 例如检查String.contains(",")或String.IndexOf()
答案 2 :(得分:0)
@Override
public void onTextChanged(CharSequence returnedResult, int start, int before, int count)
{
String result = returnedResult.toString();
if(result.length() == 0) return;
//if(result.contains(",")) // another method
if(result.charAt(result.length() - 1).equals(",") // last character is ','
{
// comma is entered
addCategoryToLayout(result.substring(0, result.length() - 1));
newCategryET.setText("");
}
}
答案 3 :(得分:0)
试试这种方式,希望这会起作用
@Override
public void onTextChanged(CharSequence returnedResult, int start,
int before, int count) {
if (count > 0) {
String s1 = "" + result.charAt(start);
if (s1.toString().equals(",")) {
addCategoryToLayout(result.substring(0, result.length() - 1));
newCategryET.setText("");
return;
}
}
}