1、收起某Activity中的软键盘
public static void hideIMEInThisActivity(Activity activity) {
View view = activity.getCurrentFocus();
if (view == null) {
Log.d("", "没找到焦点view");
return;
}
((InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(
activity.getCurrentFocus()
.getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS
);
}
2、设置软键盘右下角的按钮显示图标及操作
利用android:imeOptions
//完成
android:imeOptions="actionDone"
//发送
android:imeOptions="actionSend"
//搜索
android:imeOptions="actionSearch"
//等等
Java代码对应EditorInfo.IME_ACTION_XXX
如果设置了imeOptions但是未起作用:
解决方法:
在EditText中:
1 将singleLine设置为true
2 将inputType设置为text
<EditText
android:id="@+id/edit_content"
android:hint="@string/search"
android:gravity="center_vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:singleLine="true"
android:imeOptions="actionSearch"
/>
Java代码:
editText.setImeOptions(EditorInfo.IME_ACTION_SEARCH);
editText.setInputType(EditorInfo.TYPE_CLASS_TEXT);
editText.setSingleLine(true);
3、对于EditText监听软键盘的‘搜索’‘Enter’等操作
editText.setOnEditorActionListener(
new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v,
int actionId,
KeyEvent event) {
switch (actionId) {
case EditorInfo.IME_ACTION_SEARCH:
performSearch();
return true;
}
return false;
}
}
);