如何设置edittext以显示搜索按钮或在键盘上输入按钮?

时间:2011-06-30 02:48:32

标签: android keyboard

如何设置EditText以显示搜索按钮或在键盘上输入按钮?

9 个答案:

答案 0 :(得分:193)

在您的布局设置输入法中选择搜索

 <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;
    }
});

答案 1 :(得分:69)

使用代码编辑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;
    }
});

答案 2 :(得分:15)

  android:singleLine="true"
  android:imeOptions="actionSearch"

答案 3 :(得分:3)

以下过程介绍如何使用ArrayAdapter设置一个AutoCompleteTextView,它提供来自数组的建议:

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字符串数组中的每个项目绑定到simple_list_item_1布局中存在的TextView(这是Android提供的布局,为列表中的文本提供标准外观)。 然后通过调用setAdapter()将适配器分配给AutoCompleteTextView。

答案 4 :(得分:1)

设置这两个字段以在键盘上显示搜索图标。

            android:imeOptions="actionSearch"
            android:imeActionLabel="@string/search"

,此外,如果您需要在键盘搜索按钮上单击以执行某些操作,则还必须添加以下代码。

    etSearch.setOnEditorActionListener((v, actionId, event) -> {
        if (actionId == EditorInfo.IME_ACTION_SEARCH) {
              search();     // you can do anything
            return true;
        }
        return false;
    });

答案 5 :(得分:0)

您可以使用EditText的输入类型更改键盘。

<EditText android:inputType="number"/>

XML documentation

...或...

editText.setInputType(int);

Code documentation

答案 6 :(得分:0)

使您的编辑文本像这样。

    <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" />

答案 7 :(得分:0)

使用此

<EditText
                android:id="@+id/editSearch"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:imeOptions="actionSearch"
                android:singleLine="true"

必须在您的xml中添加singleLine = true 希望我的回答对您有帮助

答案 8 :(得分:0)

在EditText视图中将此属性设置为“ imeOptions”:

<EditText
     android:imeOptions="actionSearch"
     android:layout_width="match_parent"
     android:inputType="text"
     android:hint="Enter search"
     android:layout_height="wrap_content"
/>