2017-02-15 4 views
0

Mon problème est que lorsque je suggère des phrases dans MultiAutoCompleteTextView, lorsque j'appuie sur la barre d'espace, les suggestions disparaissent. Exemple:MultiAutoCompleteTextView n'accepte pas les espaces

Mots suggérés:

LE ROCK
LA BALLE
THERMIQUE

Si je vous écris "LE", toutes les phrases sont affichées, mais si je vous écris « THE "(avec espace vide) les suggestions sont rejetées. Je veux que si vous écrivez "THE", les éléments "THE ROCK" et "THE BALL" sont affichés dans les mots suggérés.

Merci.

Répondre

0

Jetez un oeil à ce poste:

https://groups.google.com/forum/#!topic/android-developers/OrsN2xRpDmA Je viens de croiser un problème similaire et écrit d'une simple dérivation de mot multiples. Il est par défaut un séparateur "," mais vous pouvez le définir comme vous le souhaitez en utilisant la méthode "setSeparator". ou cette réponse pile débordement pourrait être utile car il éprouve le même problème: AutoCompleteTextView backed by CursorLoader

+0

Je l'ai déjà vu ce poste, et il n'a pas fonctionné pour moi je – cnbandicoot

0

Vous devez implémenter MultiAutoCompleteTextView.Tokenizer et créer un spaceTokenizer comme ci-dessous. Réglez ensuite 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

déjà un 'CustomTokenizer', et ne fonctionne pas. Votre 'Tokenizer' ne fonctionne pas non plus – cnbandicoot