【发布时间】:2011-09-25 15:33:01
【问题描述】:
如何设置EditText 在键盘上显示搜索按钮或输入按钮?
【问题讨论】:
如何设置EditText 在键盘上显示搜索按钮或输入按钮?
【问题讨论】:
您可以使用 EditText 的 inputType 更改可用的键盘。
<EditText android:inputType="number"/>
...或...
editText.setInputType(int);
【讨论】:
使用代码编辑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;
}
});
【讨论】:
在您的布局中将输入法设置为“搜索”选项
<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;
}
});
【讨论】:
android:inputType="text" 才能完成这项工作
android:inputType="text" 以获得更高的 API 级别。 (我认为对于 ICS+)
KeyEvent.KEYCODE_ENTER
以下过程描述了如何使用 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 - 在您的 Activity 或 Fragment 中,使用以下代码指定提供建议的适配器:
// 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,该 TextView 存在于 simple_list_item_1 布局中(这是 Android 提供的布局,为列表中的文本提供标准外观)。 然后通过调用 setAdapter() 将适配器分配给 AutoCompleteTextView。
【讨论】:
android:singleLine="true"
android:imeOptions="actionSearch"
【讨论】:
让你的编辑文本像这样。
<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" />
【讨论】:
设置这两个字段以在键盘上显示搜索图标。
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;
});
【讨论】:
使用这个
<EditText
android:id="@+id/editSearch"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:imeOptions="actionSearch"
android:singleLine="true"
必须在您的 xml 中添加 singleLine=true 希望我的回答能帮到你
【讨论】:
在 EditText 视图中设置此属性“imeOptions”:
<EditText
android:imeOptions="actionSearch"
android:layout_width="match_parent"
android:inputType="text"
android:hint="Enter search"
android:layout_height="wrap_content"
/>
【讨论】:
KOTLIN 开发人员:
1. XML:
<androidx.appcompat.widget.AppCompatEditText
android:id="@+id/etSearch"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/sans_medium"
android:imeOptions="actionSearch"
android:inputType="text" />
2。类文件:
etSearch.setOnEditorActionListener(object : TextView.OnEditorActionListener {
override fun onEditorAction(v: TextView?, actionId: Int, event: KeyEvent?): Boolean {
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
//hide Keyboard
//do search here
return true
}
return false
}
})
注意事项:
使用 imeOptions="actionSearch" ,不要忘记在 XML 中添加 inputType="text" 或任何您想设置为 inputType 的内容。否则您将无法在打开的键盘上看到搜索图标。
【讨论】: