Установка цвета курсора EditText

У меня возникает эта проблема, когда я использую тему Голо на Android в проекте планшета. Тем не менее, у меня есть fragment на экране, который имеет белый фон. Я добавляю компонент EditText на этот fragment. Я попытался переопределить тему, установив фон ресурсов темы Holo.Light. Однако мой текстовый курсор (карат) остается белым и, следовательно, невидимым на экране (я могу заметить его слабо в поле edittext ..).

Кто-нибудь знает, как я могу заставить EditText использовать более темный цвет курсора? Я попытался установить стиль EditText на "@android:style/Widget.Holo.Light.EditText" без положительного результата.

Установка атрибута android:textCursorDrawable для @null должна привести к использованию android:textColor в качестве цвета курсора.

Атрибут «textCursorDrawable» доступен в уровне API 12 и выше

В макете

  

Затем создайте drawable xml: color_cursor

      

У вас есть указатель белого цвета на свойство EditText.

Кажется, все ответы идут вокруг кустов.

В своем EditText используйте свойство:

 android:textCursorDrawable="@drawable/black_cursor" 

и добавьте black_cursor.xml к вашим ресурсам следующим образом:

      

Это также способ создания более разнообразных курсоров, если вам нужно.

Существует новый способ изменения цвета курсора в последней Appcompact Appcompact v21
Просто измените colorAccent в стиле следующим образом:

   

Затем примените этот стиль к теме приложения или действиям.

Обновление : этот способ работает только с API 21+
Обновление 2 : я не уверен, что минимальная версия для Android, с которой она может работать.
Протестировано версией Android:

 2.3.7 - didn't work 4.4.4 - worked 5.0 - worked 5.1 - worked 

Я нашел ответ 🙂

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

 @style/myEditText 

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

`

  

`

android: здесь используется ключевое слово textCursorDrawable .

Для тех, кому необходимо динамически установить цвет курсора EditText , ниже вы найдете два способа достижения этого.


Во-первых, создайте курсор для рисования:

      

Установите идентификатор ресурса с возможностью перемещения курсора, который вы создали (https://github.com/android/platform_frameworks_base/blob/kitkat-release/core/java/android/widget/TextView.java#L562-564“> источник)). :

 try { Field f = TextView.class.getDeclaredField("mCursorDrawableRes"); f.setAccessible(true); f.set(yourEditText, R.drawable.cursor); } catch (Exception ignored) { } 

Чтобы просто изменить цвет курсора по умолчанию, можно использовать следующий метод:

 public static void setCursorDrawableColor(EditText editText, int color) { try { Field fCursorDrawableRes = TextView.class.getDeclaredField("mCursorDrawableRes"); fCursorDrawableRes.setAccessible(true); int mCursorDrawableRes = fCursorDrawableRes.getInt(editText); Field fEditor = TextView.class.getDeclaredField("mEditor"); fEditor.setAccessible(true); Object editor = fEditor.get(editText); Class clazz = editor.getClass(); Field fCursorDrawable = clazz.getDeclaredField("mCursorDrawable"); fCursorDrawable.setAccessible(true); Drawable[] drawables = new Drawable[2]; Resources res = editText.getContext().getResources(); drawables[0] = res.getDrawable(mCursorDrawableRes); drawables[1] = res.getDrawable(mCursorDrawableRes); drawables[0].setColorFilter(color, PorterDuff.Mode.SRC_IN); drawables[1].setColorFilter(color, PorterDuff.Mode.SRC_IN); fCursorDrawable.set(editor, drawables); } catch (final Throwable ignored) { } } 

Поздно к вечеринке, вот мой ответ,

Это для людей, которые не хотят менять colorAccent в своей родительской теме, но хотят изменить атрибуты EditText !

Этот ответ показывает, как изменить ……

  1. Цвет нижней линии
  2. Цвет курсора
  3. Цвет указателя курсора (я использовал свой собственный образ) ………. из EditText используя стиль, применяемый к теме Activity.

введите описание изображения здесь

  

Пример:

  

Теперь создайте edit_text_background ( edit_text_background ), добавьте ресурс xml для фона! Вы можете настроить, как хотите!

         1         

Теперь, когда вы установили этот стиль в своей теме «Активность».

Пример :

В вашей деятельности у вас есть тема, установите для этой editText тему editText .

  
 Edittext cursor color you want changes your color.  

Затем создайте drawalble xml: color_cursor

      

Для меня я модифицировал как AppTheme, так и значение colors.xml

  

Вот цвет.xml

   #B7EC2A  

Я вынул атрибут android: textCursorDrawable для @null, который я разместил внутри стиля editText. Когда я попытался использовать это, цвета не изменились бы.

Wow я действительно опоздал на эту вечеринку, но у нее была активность 17 дней назад. Было бы шло нам, чтобы рассмотреть вопрос о том, какую версию Android мы используем для ответа, так что теперь этот ответ работает с Android 2.1 и выше. Перейти в RES / VALUES / STYLES и добавьте строки кода ниже, и ваш курсор будет черным

   

Вам понадобится эта строка кода в папке RES / COLOR

 #000000 

Зачем писать это поздно? Было бы неплохо рассмотреть некоторые формы категорий для многих возглавляемых монстров Android!

editcolor.xml

android:textCursorDrawable="@drawable/editcolor"

В xml-файле установлен цветовой код edittext фона edittext

Это еще проще.

  

Это работает в ICS и за ее пределами. Я не тестировал его в других версиях.

использовать это

андроид: textCursorDrawable = “@ цвет / белый”

Единственным допустимым ответом должно быть изменение темы активности: #000000 Нельзя использовать android:textCursorDrawable для @null потому что это касается только самого курсора, но не булавки под курсором, если вы хотите перетащить этот курсор. Тематическое решение является самым серьезным.

      

измените цвет этого цвета в стилях.xm, это просто

Давайте будем гением компьютера.