2011-12-14 21 views
11

Tengo que tener un EditText en mi aplicación con un fondo blanco. Lo hice en mi archivo theme.xmlCambiar el color del cursor de un EditText en Android 3.0

<style name="myEditText" parent="@android:style/Widget.EditText"> 
    <item name="android:background">#ffffffff</item> 
    <item name="android:textColor">#ff000000</item> 
</style> 

El problema ahora es que el cursor sigue siendo blanco y, por lo tanto, no está visible. hice algunas google y encontramos este pregunta aquí en StackOverflow: Set EditText cursor color

La forma en que se ha hecho no es la clave android:textCursorDrawable. Pero esta clave parece estar disponible solo con un objetivo de 3.2. Pero nuestros clientes quieren un objetivo 3.0 y no pude encontrar ninguna otra solución ...

¿Hay alguna manera en que pueda cambiar el color del cursor parpadeante con 3.0 como objetivo?

Gracias por ayudar :)

+1

http://stackoverflow.com/questions/7238450/set-edittext-cursor-color Por favor, compruebe la barra conductora superior –

Respuesta

2

he encontrado la respuesta :)

he fijado estilo EDITTEXT del tema al:

<item name="android:editTextStyle">@style/myEditText</item> 

Luego he utilizado la siguiente estirable para colocar el cursor:

<style name="myEditText" parent="@android:style/Widget.Holo.Light.EditText"> 
<item name="android:background">@android:drawable/editbox_background_normal</item> 
<item name="android:textCursorDrawable">@android:drawable/my_cursor_drawable</item> 
<item name="android:height">40sp</item> </style> 

android: textCursorDrawable es la clave aquí.

Y también se refiere éste Vertical line using XML drawable

+8

En este momento, es probable que no leyó la pregunta. 'testCursorDrawable' no está disponible en Android 3.0 –

1

yo estaba tratando de cambiar el color del cursor en mi aplicación, que dirige API 8. He descubierto que TextView utiliza textColor propiedad como el color del cursor. Aquí hay una parte de onDraw() definido en TextView API 8:

int color = mCurTextColor; 

    if (mLayout == null) { 
     assumeLayout(); 
    } 

    Layout layout = mLayout; 
    int cursorcolor = color; 

El cursorcolor se utiliza entonces para constract un objeto android.graphics.Path que representa el color.

Si necesita cambiar este comportamiento, usted está haciendo una gran tarea, tendrá que implementar su propio TextView.

Cuestiones relacionadas