<EditText
android:id="@+id/my_edittext"
android:layout_height="25dp"
android:imeOptions="actionSearch"
android:singleLine="true"
android:layout_width="match_parent"
android:layout_alignParentRight="true"
android:layout_toRightOf="@+id/iv_search"
android:hint=""
android:textSize="@dimen/t_m"
android:background="@null"
android:inputType="number"/>
在对应的Activity如下写:
private void initView{
mEditText = (EditText)findViewById(R.id.my_edittext);
}
mEditText.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_ENTER) {
Log.e(TAG,"点击了搜索框");
// 先隐藏键盘
((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE))
.hideSoftInputFromWindow(SelectorNumberActivity.this.getCurrentFocus()
.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
//进行搜索操作的方法,在该方法中可以加入mEditSearchUser的非空判断
}
return false;
}
});
//进入界面直接获取焦点,显示输入
mEditText.setFocusable(true);
mEditText.requestFocus();//获取焦点 光标出现
mEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
//pop.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
}
}
});
附加:android:imeOptions的值有actionGO, actionSend, actionSearch,actionDone..
对此设置的监听代码
mEditText.setOnEditorActionListener(new OnEditorActionLister(){
public boolean onEditorAction(TextView v,int actionId,KeyEvent event){
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
Toast.makeText(getActivity(), "点击",Toast.LENGTH_SHORT).show();
}
return false;
}
});
测试的时候有一个遗留的问题:三个测试机(三星 s6 edge,oppoR7,vivoX5),当editView输入框不输入内容的时候,三星s6edge貌似不触发onKey这个方法,监听不到事件
android:id="@+id/my_edittext"
android:layout_height="25dp"
android:imeOptions="actionSearch"
android:singleLine="true"
android:layout_width="match_parent"
android:layout_alignParentRight="true"
android:layout_toRightOf="@+id/iv_search"
android:hint=""
android:textSize="@dimen/t_m"
android:background="@null"
android:inputType="number"/>
在对应的Activity如下写:
private void initView{
mEditText = (EditText)findViewById(R.id.my_edittext);
}
mEditText.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_ENTER) {
Log.e(TAG,"点击了搜索框");
// 先隐藏键盘
((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE))
.hideSoftInputFromWindow(SelectorNumberActivity.this.getCurrentFocus()
.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
//进行搜索操作的方法,在该方法中可以加入mEditSearchUser的非空判断
}
return false;
}
});
//进入界面直接获取焦点,显示输入
mEditText.setFocusable(true);
mEditText.requestFocus();//获取焦点 光标出现
mEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
//pop.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE);
}
}
});
附加:android:imeOptions的值有actionGO, actionSend, actionSearch,actionDone..
对此设置的监听代码
mEditText.setOnEditorActionListener(new OnEditorActionLister(){
public boolean onEditorAction(TextView v,int actionId,KeyEvent event){
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
Toast.makeText(getActivity(), "点击",Toast.LENGTH_SHORT).show();
}
return false;
}
});
测试的时候有一个遗留的问题:三个测试机(三星 s6 edge,oppoR7,vivoX5),当editView输入框不输入内容的时候,三星s6edge貌似不触发onKey这个方法,监听不到事件
本文介绍如何在Android应用中为EditText组件设置键盘Enter键监听器,并实现点击Enter后的响应动作,包括隐藏软键盘及执行特定任务。同时探讨了不同设备上监听行为的一致性问题。
5021

被折叠的 条评论
为什么被折叠?



