1、禁止自动弹出软键盘
方法1
在包含EditText的父布局中添加android:focusable="true"和android:focusableInTouchMode="true"
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:focusable="true"
android:focusableInTouchMode="true">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
方法2
在AndroidManifest.xml中添加stateHidden
<activity android:name=".TestAActivity"
android:windowSoftInputMode="adjustResize|stateHidden"/>
方法3
进入页面强制隐藏软键盘,如果前两种方法都不起作用的话,可以使用这种方法:
/**
* 隐藏输入软键盘
* @param context
* @param view
*/
public static void hideInputManager(Context context,View view){
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
if (view !=null && imm != null){
imm.hideSoftInputFromWindow(view.getWindowToken(), 0); //强制隐藏
}
}
2、回车键监听
mBinding.etAddPhoneCode.setOnEditorActionListener(new TextView.OnEditorActionListener() {
//需要设置其中一个
//android:singleLine="true"
//android:inputType="text"
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
//与EditText android:imeOptions="actionDone" 属性对应
if (actionId == EditorInfo.IME_ACTION_DONE) {
return true;//不隐藏软键盘
}
return false;//隐藏软键盘
}
});
3、一些零散的东西
3.1指定EditText获取焦点
mEtPort.setFocusable(true);
mEtPort.setFocusableInTouchMode(true);
mEtPort.requestFocus();
3.2指定光标位置
//光标放到最后
Editable editable = mEtPort.getText();
Selection.setSelection(editable, editable.length());
网友评论