2017-02-15 6 views
0

Моя проблема в том, что когда я предлагаю предложения в MultiAutoCompleteTextView, когда я нажимаю пробел, предложения исчезают. Пример:MultiAutoCompleteTextView не принимает пробелы

Предлагаемые слова:

Скале
МЯЧ
ТЕПЛОВОЙ

Если я пишу "The", отображаются все предложения, но если я пишу «THE »(с пробелом) предложения отклоняются. Я хочу, чтобы, если вы пишете «THE», элементы «THE ROCK» и «THE BALL» отображаются в предложенных словах.

Спасибо.

ответ

0

Посмотрите на этом посте:

https://groups.google.com/forum/#!topic/android-developers/OrsN2xRpDmA Я просто столкнулся подобной проблемой и написал простые несколько слов вывода. По умолчанию используется разделитель «,», но вы можете установить его, как вам нравится, с помощью метода «setSeparator». или этот стек переполнения ответ может быть полезным потому что испытывает такую ​​же проблему: AutoCompleteTextView backed by CursorLoader

+0

Я уже видел этот пост, и он не работает для меня – cnbandicoot

0

Вы должны осуществлять MultiAutoCompleteTextView.Tokenizer и создать spaceTokenizer, как показано ниже. Затем установите multiAutoCompleteTextView.setTokenizer(new SpaceTokenizer());

public class SpaceTokenizer implements MultiAutoCompleteTextView.Tokenizer { 

public int findTokenStart(CharSequence text, int cursor) { 
    int i = cursor; 

    while (i > 0 && text.charAt(i - 1) != ' ') { 
     i--; 
    } 
    while (i < cursor && text.charAt(i) == ' ') { 
     i++; 
    } 

    return i; 
} 

public int findTokenEnd(CharSequence text, int cursor) { 
    int i = cursor; 
    int len = text.length(); 

    while (i < len) { 
     if (text.charAt(i) == ' ') { 
      return i; 
     } else { 
      i++; 
     } 
    } 

    return len; 
} 

public CharSequence terminateToken(CharSequence text) { 
    int i = text.length(); 

    while (i > 0 && text.charAt(i - 1) == ' ') { 
     i--; 
    } 

    if (i > 0 && text.charAt(i - 1) == ' ') { 
     return text; 
    } else { 
     if (text instanceof Spanned) { 
      SpannableString sp = new SpannableString(text + " "); 
      TextUtils.copySpansFrom((Spanned) text, 0, text.length(), 
        Object.class, sp, 0); 
      return sp; 
     } else { 
      return text + " "; 
     } 
    } 
} 
} 
+0

У меня уже есть 'CustomTokenizer', и не работает. Ваш «токенизатор» не работает ни – cnbandicoot