很多安卓应用都有一个顶部的搜索栏,如这种
在这里插入图片描述

或者这种:在这里插入图片描述
这些软件的搜索框都有一个共同点,(应答)没错都在屏幕顶部,谁说的屏幕顶部的,请出去,应该是大都是单行文本。好,开始操作。
单行文本嘛,singleline就可以了。
惨遭废弃
什么?废弃了?什么玩意?百度查一查
改成InputType = text即可,可是还有个问题,为什么他们的点开搜索栏是搜索按钮,我的点开还是回车样式呢。原来是需要改EditText的
android:imeOptions=”actionSearch” 属性

在这里插入图片描述

变成搜索按钮了。那其他的又是什么呢
在这里插入图片描述
actionDone 默认样式回车
actionGo 回车 变 “开始” 在这里插入图片描述
actionNext 回车变下一步
在这里插入图片描述
actionPrevious 回车还是回车,输入后点击回车如果还有另一个输入框将会把光标返回到上一个输入框
在这里插入图片描述
actionSend 回车变 “发送” 文字 懒得截图了

那么问题来了,如何监听到键盘的回车按钮呢

1
2
3
4
5
6
7
8
9
10
11
12
13

EditText text = findViewById(R.id.et_bar1);

text.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
Snackbar.make(v,"点击了搜索",Snackbar.LENGTH_SHORT).show();
}
return false;
}
});

至于ActionId,点进去还是有不少的,总有需要的那个

public static final int IME_MASK_ACTION = 0x000000ff;

public static final int IME_ACTION_UNSPECIFIED = 0x00000000;

public static final int IME_ACTION_NONE = 0x00000001;

public static final int IME_ACTION_GO = 0x00000002;

public static final int IME_ACTION_SEARCH = 0x00000003;

public static final int IME_ACTION_SEND = 0x00000004;

public static final int IME_ACTION_NEXT = 0x00000005;

public static final int IME_ACTION_DONE = 0x00000006;

public static final int IME_ACTION_PREVIOUS = 0x00000007;

注意这里有个小bug,如果你有两行EditText,点击了回车不会执行你的动作,而是跳到下一个输入框