Как создать EditText с крестиком (x) в конце? - PullRequest
174 голосов
/ 15 июня 2011

Есть ли виджет типа EditText, который содержит крестик, или есть свойство для EditText, с помощью которого он создается автоматически? Я хочу, чтобы крестовая кнопка удаляла любой текст, написанный на EditText.

Ответы [ 14 ]

2 голосов
/ 28 января 2014

Вы можете скачать исходники здесь:

https://github.com/GhOsTTT/editTextXbutton

хорошего дня

1 голос
/ 05 января 2016

Вы можете использовать этот фрагмент с ответом Jaydip для более чем одной кнопки.просто позвоните после получения ссылки на ET и Button Elements.Я использовал кнопку vecotr, поэтому вы должны изменить элемент Button на ImageButton:

private void setRemovableET(final EditText et, final ImageButton resetIB) {

        et.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if (hasFocus && et.getText().toString().length() > 0)
                    resetIB.setVisibility(View.VISIBLE);
                else
                    resetIB.setVisibility(View.INVISIBLE);
            }
        });

        resetIB.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                et.setText("");
                resetIB.setVisibility(View.INVISIBLE);
            }
        });

        et.addTextChangedListener(new TextWatcher() {
            @Override
            public void afterTextChanged(Editable s) {}
            @Override
            public void beforeTextChanged(CharSequence s, int start,
                                          int count, int after) {
            }
            @Override
            public void onTextChanged(CharSequence s, int start,
                                      int before, int count) {
                if(s.length() != 0){
                    resetIB.setVisibility(View.VISIBLE);
                }else{
                    resetIB.setVisibility(View.INVISIBLE);
                }
            }
        });
    }
1 голос
/ 12 сентября 2015

Использование

android:drawableRight="@android:drawable/ic_input_delete"
0 голосов
/ 24 января 2015

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

<TextView
    android:id="@+id/inputSearch"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:drawableRight="@drawable/ic_actionbar"
    android:layout_alignParentBottom="true"
    android:layout_toRightOf="@+id/back_button"/>

<Button
    android:id="@+id/clear_text_invisible_button"
    android:layout_width="30dp"
    android:layout_height="30dp"
    android:layout_gravity="right|center_vertical"
    android:background="@color/transparent"
    android:layout_alignBaseline="@+id/inputSearch"
    android:layout_alignBottom="@+id/inputSearch"
    android:layout_alignRight="@+id/inputSearch"
    android:layout_alignEnd="@+id/inputSearch"
    android:layout_marginRight="13dp"
    />

Это текст редактирования, в котором я ставлю крестик как правый рисунок, а затемВверх я положил прозрачную кнопку, которая очищает текст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...