我想不通。一些应用程序有一个EditText(文本框),当你触摸它时,它会弹出屏幕键盘,键盘上有一个“搜索”按钮,而不是一个进入键。
我想实现这个。我如何实现搜索按钮并检测搜索按钮的按下?
编辑:找到了如何实现搜索按钮;在XML中,android:imeOptions="actionSearch"或在Java中,EditTextSample.setImeOptions(EditorInfo.IME_ACTION_SEARCH);但是如何处理用户按下搜索按钮的情况呢?它与android:imeActionId有关吗?
这个答案是TextInputEditText:
在布局XML文件中将输入法选项设置为所需的类型。举个例子。
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:imeOptions="actionGo"/>
< / com.google.android.material.textfield.TextInputLayout >
类似地,你也可以将imeOptions设置为actionSubmit、actionSearch等
在java中添加编辑器动作监听器。
TextInputLayout textInputLayout = findViewById(R.id.textInputLayout);
textInputLayout.getEditText().setOnEditorActionListener(new
TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_GO) {
performYourAction();
return true;
}
return false;
}
});
如果你正在使用kotlin:
textInputLayout.editText.setOnEditorActionListener { _, actionId, _ ->
if (actionId == EditorInfo.IME_ACTION_GO) {
performYourAction()
}
true
}