Редактирование текстового курсора Android не отображается?

 <shape xmlns:android="http://schemas.android.com/apk/res/android"
 android:shape="rectangle">
 <solid android:color="#ffffff" />    
 <stroke android:width="1dp" 
  android:color="#000000" />
 </shape>  

Я использую этот код в setBackgroundResource(R.drawable.selfbg); Хотя я использую этот код, курсор не отображается в Edittext.

Ответ 1

Вы пытались?

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

Ответ 2

попробуйте добавить ниже в EditText:

 android:textCursorDrawable="@null"
 android:background="@null"

Ответ 3

попробовать:

 <item name="android:textCursorDrawable">@null</item>

Для этого требуется API-12 и выше.

Ответ 4

<EditText  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textCursorDrawable="@drawable/color_cursor"
    android:background="@drawable/R.drawable.selfbg"/>


Than create drawalble xml: color_cursor

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <size android:width="2dp" />
    <solid android:color="#000000"  />
</shape>

Ответ 5

Я думаю, что вы не можете "setTextCursorDrawable" по коду.

ive посмотрел в документацию по Android EditText и TextView и такого метода нет.

поэтому вам нужно сделать это в макете xml.

Ответ 6

попробуйте это

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

android:textCursorDrawable="@drawable/black_cursor"

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

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
    <size android:width="0dp" />
</shape>

Ответ 7

Если вы хотите, чтобы это выполнялось только с помощью java-кода попробуйте это

В классе TextView вы можете найти код ниже

case com.android.internal.R.styleable.TextView_textCursorDrawable:
    mCursorDrawableRes = a.getResourceId(attr, 0);
    break;

но метод textCursorDrawable() существует только в R.attr, если вы хотите установить этот атрибут, вы можете вызвать метод метода ниже, включив в текстовый файл editText.

public EditText(Context context, AttributeSet attrs) {
    this(context, attrs, com.android.internal.R.attr.editTextStyle);
}

Ответ 8

Основная деятельность

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    EditText editText = findViewById(R.id.editText);
    editText.requestFocus();
    editText.setSelection(0);
}

activity_main

 <LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

        <include
            layout="@layout/content_main"
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>
 </LinearLayout>

content_main

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

        <EditText
            android:id="@+id/editText"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
 </LinearLayout>

Как вы можете видеть, мой EditText находится не в activity_main, а в content_main, который я в любом случае включил в activity_main, надеясь, что он будет работать так же, но НЕТ... К сожалению, это не работает. Таким образом, я изменяю свою Activity_main следующим образом, и это работает как шарм.

**activity_main**

 <LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

        <EditText
            android:id="@+id/editText"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
 </LinearLayout>