Изменение цвета курсора EditText в Android 3.0

Мне нужно иметь EditText в моем приложении с белым фоном. Я сделал это в файле theme.xml

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

Теперь проблема заключается в том, что курсор по-прежнему белый и поэтому не отображается. Я сделал несколько поисковых запросов и нашел этот вопрос здесь в StackOverflow: Установить цвет курсора EditText

То, как это делается, есть клавиша android:textCursorDrawable. Но этот ключ, похоже, доступен только с целью 3.2. Но нашим клиентам нужна цель 3.0, и я не нашел другого решения...

Есть ли способ изменить цвет мигающего курсора с 3.0 в качестве цели?

Спасибо за помощь:)

Ответ 1

Я нашел ответ:)

Я установил стиль editText для темы:

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

Затем я применил следующий drawable для установки курсора:

<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 - это ключ.

И также назовите это Вертикальная линия с использованием XML-графика

Ответ 2

Я пытался изменить цвет курсора в своем приложении, которое предназначалось для API 8. Я обнаружил, что TextView использует свойство textColor как цвет курсора. Здесь часть onDraw(), определенная в TextView API 8:

    int color = mCurTextColor;

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

    Layout layout = mLayout;
    int cursorcolor = color;

Затем cursorcolor используется для создания объекта android.graphics.Path, представляющего цвет.

Если вам нужно изменить это поведение, вы достигнете довольно сложной задачи, вам придется реализовать свой собственный TextView.