美文网首页Aide学
EditText常用又老忘的东西

EditText常用又老忘的东西

作者: 小耗子_20da | 来源:发表于2020-05-22 11:49 被阅读0次

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());

相关文章

网友评论

    本文标题:EditText常用又老忘的东西

    本文链接:https://www.haomeiwen.com/subject/hucqahtx.html