应用程序冻结自动完成textChanged

我能够获取AutoCompleteTextview的用户输入的第一个和最后一个文本,但是当我在AutocompleteTextView textChanged方法上设置构建器方法时,我的应用程序冻结。 我感谢所提供的任何努力。

@Override public void onTextChanged(CharSequence s, int start, int before, int count) { if(s.length()>0) { String selectedText = s.toString(); int end = selectedText.length()+start; SpannableStringBuilder builder = new SpannableStringBuilder(selectedText); builder.setSpan(android.graphics.Typeface.BOLD, start, end, Spannable.SPAN_INCLUSIVE_INCLUSIVE); Log.i("builderText", " "+builder); autoCompleteTextView.setText(builder); } } 

问题是您正在尝试在可能的空字符串上获取字符的索引。 这就是你在这里获得-1的原因

 String startText = autoCompleteTextView.getText().toString(); int start = startText.indexOf(0); int end = startText.indexOf(1); 

您可能希望在侦听器中添加该语句,例如autoCompleteTextView.addTextChangedListener() ,并在那里处理实际文本更改的位置。