2012-08-31 28 views
6

Tengo un texto de edición en mi aplicación que mostrará el cursor correctamente en Froyo o Gingerbread, sin embargo, en sdks posteriores el cursor es invisible. He encontrado en línea que la solución es configurar el android: textCursorDrawable = "@ null" para que el texto de edición use el color de fuente para el cursor. Sin embargo, dado que mi versión de minsdk es 8, no tengo acceso a esa propiedad.Android Edittext cursor invisible

¿Es su forma de agregar selectivamente una propiedad basada en el SDK en el que se encuentra? ¿O posiblemente una forma de evitar esto para que pueda tener cursores visibles en las versiones sdk más antiguas y nuevas?

+1

¿No puedes usar diferentes carpetas de diseño para las versiones anteriores 'Gingerbread' donde estableces esa propiedad? – Luksprog

+0

@Luksprog esa es probablemente la forma más fácil de lo que puedo ver. –

+0

@Luksprog ¿Te importaría publicar un ejemplo? – Michaeldcooney

Respuesta

3

No conozco su configuración actual, pero una forma de usar esa propiedad es utilizar diferentes carpetas de diseños basadas en varias versiones de Android. android:textCursorDrawable es una propiedad introducida en API 12 por lo que podría tener una carpeta de diseño como layout-v12 que se utilizará cuando la API sea 12 o mayor. En los diseños de esta carpeta, el uso de la propiedad es válido. Para versiones inferiores, Froyo y Gingerbread, no tiene ningún problema, por lo que utilizaría una carpeta predeterminada, layout. Al final tendrá dos diseños carpeta (que contiene los mismos archivos de diseño):

layout // don't need the property 
layout-v12 // use the property 

Eso deja fuera API 11, no sé si esto es un tema de oferta para usted.

+0

¡Gracias, eso es lo que necesitaba! – Michaeldcooney

+0

esto no funciona porque eclipse todavía se quejará del diseño de layout-14 que tiene un atributo no válido para la versión de minsdk. –

+0

@timT No entiendo ese error. Asegúrate de tener las últimas actualizaciones. – Luksprog

0

intenta configurar el targetSdkVersion a nivel de la API 13 o superior para acceder al androide: propiedad textCursorDrawable

+0

Mi targetSdkVersion es 16 – Michaeldcooney

0

Si no ha un cursor que supongo que la entrada es simple y dicen que sólo se puede introducir nuevos caracteres al final de la ¿el texto?

Creo que puede usar un TextView y para esto agregar el suyo KeyListener? Pero en este caso se tiene un problema con el teclado virtual no se muestran, ver algunos de los siguientes enlaces:

Forcing the Soft Keyboard open

android force keyboard visible

o crear propio teclado si el sonó de claves válidas es muy límite como solo dígitos