Cómo reemplazar la coma con un espacio cuando uso el "MultiAutoCompleteTextView"
Estoy haciendo un programa simple usando MultiAutoCompleteTextView
para pedir las palabras comunes cuando introdujo varias letras.
código:
- ¿Cómo agregar un widget a la pantalla principal de Android desde mi aplicación?
- Android: pasar el objeto del widget de recopilación a la actividad
- Cómo reducir el tamaño de WebView dinámicamente de acuerdo a su contenido?
- Android: My App Widget con ListView no se actualiza a través del botón o período de actualización
- Gen ya existe pero no es una carpeta de origen
ArrayAdapter<String> adapter = new ArrayAdapter<String>( this, android.R.layout.simple_dropdown_item_1line, ary); MultiAutoCompleteTextView textView = (MultiAutoCompleteTextView) findViewById(R.id.editText); textView.setAdapter(adapter); textView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); private String[] ary = new String[] { "abc", "abcd", "abcde", "abcdef", "abcdefg", "hij", "hijk", "hijkl", "hijklm", "hijklmn", };
Ahora, cuando introdujo 'a' y elija "abcd", pero el resultado se convierte en "abcd". ¿Cómo reemplazar la coma con un espacio?
¡Gracias!
- Menú círculo Android como notas de captura
- Sube un diseño con el teclado suave pero guarda uno en la parte inferior
- Un diseño relativo simple, alinear con el derecho de los padres no funciona
- Colorear el widget Espacio
- GridLayout heterogéneo
- Tamaño del texto del hilandero Android
- Cómo incrustar una vista (con botones, etc) dentro de un EditText?
- Cómo calcular el tamaño de widget Android adecuado?
public class SpaceTokenizer implements 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 + " "; } } } }
La forma de hacerlo sería implementar su propio Tokenizer . La razón por la que aparece la coma es porque está usando CommaTokenizer , que está diseñado para hacer exactamente eso. También puede consultar el código fuente de CommaTokenizer si necesita una referencia para implementar su propio SpaceTokenizer.
Revise mi pregunta / respuesta
Cómo reemplazar MultiAutoCompleteTextView lista desplegable
encontrará una clase SpaceTokenizer
- Establecer un tiempo de espera para android requestSingleUpdate
- ¿Cómo puedo seleccionar el elemento seleccionado en Android ListView?