Formatear texto para sugerencias de búsqueda personalizadas proporcionadas en un cursor de un proveedor de contenido
Tengo una configuración de cuadro de búsqueda que se proporciona con sugerencias de búsqueda personalizadas a través de un ContentProvider. Estas sugerencias se manejan a través de la API de sugerencias de búsqueda de Android, que se obtiene al llamar a una Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)
. Cuando se devuelven sugerencias en el cursor, se muestran en una lista debajo del cuadro de búsqueda.
Mi problema es que quiero hacer una subcadena en cada sugerencia de búsqueda en negrita. He puesto etiquetas en negrita HTML <b>
y </b>
alrededor de estas subcadenas. Sin embargo, incluso a través de agregar Html.fromHtml(stringWithBoldTags)
al cursor que se devuelve (un MatrixCursor
), el texto se muestra todo como texto sin formato.
- Widget de búsqueda de Android - diferencia entre onQueryTextSubmit y el envío de Intent to SearchableActivity?
- Sugerencias de búsqueda personalizada en el widget de búsqueda
- Objeto serializable en la intención que devuelve como String
- La función VideoView seekto () es extremadamente incoherente
- ¿Cómo puedo filtrar el listview con baseadapter?
Me preguntaba si había una manera de apenas hacer un cierto texto en negrilla con las sugerencias de la búsqueda API. No quiero restyle completamente las sugerencias de búsqueda, por lo que parece tan sobre la parte superior para implementar mi propia API de sugerencias de búsqueda sólo para este pequeño cambio.
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { List<String> suggestions = getSuggestions(searchTerm); MatrixCursor cursor = new MatrixCursor(new String[] { BaseColumns._ID, SearchManager.SUGGEST_COLUMN_TEXT_1, SearchManager.SUGGEST_COLUMN_INTENT_DATA, SearchManager.SUGGEST_COLUMN_QUERY } ); for (int i = 0; i < suggestions.size(); ++i) { String suggestion = suggestions.get(i); Object[] row = { Integer.toString(i), Html.fromHtml(makeSubstringBold(suggestion, searchTerm)), suggestion, suggestion }; cursor.addRow(row); } return cursor; } private List<String> getSuggestions(String searchTerm) { // Return a list of suggestions for the searchTerm } private String makeSubstringBold(String fullString, String substring) { // Find substring in fullString and add HTML bold tags either side of it }
Si alguien sabe de alguna manera que usted puede hacer que las sugerencias de búsqueda API obedezcan las etiquetas en negrita devueltas en el cursor, entonces yo lo agradecería mucho!
- ¿Por qué es Intent.getAction () nulo de mi actividad de búsqueda?
- Diálogo de búsqueda en Mono Android
- ¿Cómo puedo añadir una vista de búsqueda a mi aplicación para Android?
- Cómo llamar a onSearchRequested al presionar lupa
- Cómo utilizar la funcionalidad de búsqueda en la vista de lista personalizada en Android
- Barra de búsqueda personalizada tiene una brecha entre el pulgar y el progreso
- Global "función de búsqueda" en la aplicación completa
- ¿Cómo implementar la funcionalidad de búsqueda para Google Map Api V2 Android?
- Paquete com.facebook no existe, Facebook Android SDK, IntelliJ Idea
- Android L + Nexus 5: java.io.FileNotFoundException: open failed: EACCES (permiso denegado)