Как настроить edittext, чтобы показать кнопку поиска или кнопку ввода на клавиатуре? - PullRequest
52 голосов
/ 30 июня 2011

Как установить EditText для отображения кнопки поиска или ввода на клавиатуре?

Ответы [ 6 ]

196 голосов
/ 30 июня 2011

В вашем макете установите метод ввода для опции Поиск

 <EditText 
  android:imeOptions="actionSearch"
  android:inputType="text"/>

и в коде Java используйте

editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if (actionId == EditorInfo.IME_ACTION_SEARCH) {
            performSearch();
            return true;
        }
        return false;
    }
});
73 голосов
/ 30 июня 2011

Используйте код для редактирования атрибута EditText

<EditText android:imeOptions="actionSearch" />

Затем сделайте это в своем коде Java:

editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if (actionId == EditorInfo.IME_ACTION_SEARCH) {
            performSearch();
            return true;
        }
        return false;
    }
});
15 голосов
/ 20 июля 2015
  android:singleLine="true"
  android:imeOptions="actionSearch"
3 голосов
/ 28 марта 2014

Следующая процедура описывает, как настроить AutoCompleteTextView, который предоставляет предложения из массива, используя ArrayAdapter:

1 - Добавьте AutoCompleteTextView в свой макет. Вот макет только с текстовым полем:

<?xml version="1.0" encoding="utf-8"?>
<AutoCompleteTextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/autocomplete_country"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />

2 - Определить массив, содержащий все текстовые предложения. Например, вот массив названий стран, определенных в файле ресурсов XML (res / values ​​/ strings.xml):

    <?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="countries_array">
        <item>Afghanistan</item>
        <item>Albania</item>
        <item>Algeria</item>
        <item>American Samoa</item>
        <item>Andorra</item>
        <item>Angola</item>
        <item>Anguilla</item>
        <item>Antarctica</item>
        ...
    </string-array>
</resources>

3 - В своей Деятельности или Фрагменте используйте следующий код, чтобы указать адаптер, который предоставляет предложения:

// Get a reference to the AutoCompleteTextView in the layout
AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_country);
// Get the string array
String[] countries = getResources().getStringArray(R.array.countries_array);
// Create the adapter and set it to the AutoCompleteTextView 
ArrayAdapter<String> adapter = 
        new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, countries);
textView.setAdapter(adapter);

Здесь новый ArrayAdapter инициализируется для привязки каждого элемента в строковом массиве COUNTRIES к TextView, который существует в макете simple_list_item_1 (это макет, предоставляемый Android, который обеспечивает стандартное отображение текста в списке). Затем назначьте адаптер для AutoCompleteTextView, вызвав setAdapter ().

0 голосов
/ 04 февраля 2019

Сделайте ваш текст редактирования таким.

    <EditText
        android:id="@+id/s_search"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColor="#000"
        android:textSize="15dp"
        android:imeOptions="actionSearch"
        android:inputType="text"
        android:hint="Enter search" />
0 голосов
/ 30 июня 2011

Вы можете изменить доступную клавиатуру, используя inputType для EditText.

<EditText android:inputType="number"/>

XML-документации

... или ...

editText.setInputType(int);

Кодовая документация

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