我能够获得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);
}
}
答案 0 :(得分:1)
我遇到了类似的问题并修复了它。我有一个名为“OnLayoutChage”的事件并添加了 .SetSelection(searchText.Text.Length, searchText.Text.Length);
来解决这个问题。
"searchText" 是 AutoCompleteTextView(它是一种 EditText 类型)
public void OnLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) { searchText.DropDownAnchor = Resource.Id.appbar; searchText.DropDownWidth = ViewGroup.LayoutParams.MatchParent; ....... searchText.SetSelection(searchText.Text.Length, searchText.Text.Length); }
答案 1 :(得分:0)
问题在于您尝试在可能的空字符串上获取字符的索引。这就是为什么你在这里-1
String startText = autoCompleteTextView.getText().toString();
int start = startText.indexOf(0);
int end = startText.indexOf(1);
您可能希望在侦听器中添加该语句,例如autoCompleteTextView.addTextChangedListener()
并在那里处理实际文本更改的位置。