¿Por qué mostrar java.lang.ClassCastException: android.text.SpannableString no se puede transmitir a java.lang.String?
Al copiar String
desde cualquier página del navegador, pasteData
funciona correctamente. Sin embargo, al copiar SpannedString
desde un mensaje enviado elemento editor (campo), la aplicación se bloquea y muestra este mensaje de error:
java.lang.ClassCastException: android.text.SpannableString cannot be cast to java.lang.String
Mi código:
- ¿Cómo puedo tener EditText con Clickable Spannables y todavía seleccionable por longClick?
- TextView fromHtml enlaces rotos en Lollipop
- Establecer una matriz de cadenas en negrita en Android
- Reemplace los caracteres con Image en string y luego seleccione Textview
- Texto de estilo del parámetro en método getString (int resId, Object ... formatArgs)
// since the clipboard contains plain text. ClipData.Item item = clipBoard.getPrimaryClip().getItemAt(0); // Gets the clipboard as text. String pasteData = new String(); pasteData = (String) item.getText();
Donde la instancia ClipboardManager
definida como clipBoard
, a continuación:
clipBoard = (ClipboardManager) context.getSystemService(context.CLIPBOARD_SERVICE); clipBoard.addPrimaryClipChangedListener(new ClipboardListener());
Todo lo que estoy tratando de hacer es utilizar pasteData
en formato de String
. ¿Cómo deshacerse de este error? Cualquier ayuda es apreciada.
- ¿Cómo puedo utilizar onTouchListeners en cada palabra en un TextView?
- Cómo hacer que RelativeSizeSpan se alinee a la parte superior
- Cómo configurar la fuente personalizada para palabra en un texto TextView
- ¿Por qué mi texto no aparece con estilo cuando se utiliza SpannableStringBuilder?
- Alineación de ImageSpan en la parte superior del TextView
- Ajuste de la alineación del texto mediante SpannableString
- ¿Hay alguna manera de insertar un ImageSpan en un TextView sin interrumpir el texto?
- Cadena spannable para Android con espaciado de líneas
SpannableString no es String directamente. Por lo tanto, no se puede emitir. Pero, se puede convertir en cadena. Puede convertir algo a cadena con concatenación con cadena vacía.
pasteData = "" + item.getText();
De CharSequence.toString ()
Devuelve una cadena con los mismos caracteres en el mismo orden que en esta secuencia.
Necesitas usar el siguiente código.
String pasteData = item.getText().toString();
No se puede emitir a android.text.SpannableString
porque item.getText()
devuelve CharSequence
, hay un montón de implementaciones de la misma
Si su texto Spanned solo contiene contenido HTML entonces puede convertirlo usando Html.toHtml()
String htmlString = Html.toHtml(spannedText);
- Desventajas de usar Appcelerator Titanium (o equivalente)?
- Problema del paginador de Android en pausa