1. 跳转到新的页面自动软键盘显示情况:

在配置清单文件AndroidManifest.xml文件,对Activity的windowSoftInputMode属性进行设置。

  1. stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置
  2. stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示
  3. stateHidden:用户选择activity时,软键盘总是被隐藏
  4. stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的
  5. stateVisible:软键盘通常是可见的
  6. stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态
  7. adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示
  8. adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间
  9. adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分

一般情况下,软键盘的弹出都需要依托EditText获取焦点。根据输入控件可以控制软键盘的弹出和收缩。

public static void showSoftInput(final View view) {
view.postDelayed(() -> {
view.setFocusable(true);
view.setFocusableInTouchMode(true);
view.requestFocus();
InputMethodManager imm = (InputMethodManager) view.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
if(imm != null) imm.showSoftInput(view, 0);
}, 200);
} public static boolean hideSoftInput(View view) {
InputMethodManager imm = (InputMethodManager) view.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
return imm != null && imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}

2. 键盘上的搜索,回车,确定,GO之类的设置。在EditText类型设置imeOptions属性:

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:imeOptions="actionDone|actionGo|actionNext|actionPrevious|actionNone|actionSearch|actionSend"/>

或在代码中设置:

editText.setImeOptions(EditorInfo.IME_ACTION_SEARCH);

3. 判断是否点击了软键盘的回车,搜索之类的按钮,可以添加为输入控件添加TextView.OnEditorActionListener监听,判断点击IME_ACTION类型,返回false则是默认系统处理,返回true则自行处理。

editText.setOnEditorActionListener((v, actionId, event) -> {
if (actionId == EditorInfo.IME_ACTION_DONE){
//TODO
return true;
}
return false;
});

Android输入控件EditText和软键盘监听的更多相关文章

  1. android CheckBox控件的定义及事件监听

    http://www.beijibear.com/index.php?aid=336 android CheckBox控件的定义及事件监听,本例实现CheckBox控件的定义及点击事件的监听并显示结果 ...

  2. Android输入控件详解

    输入控件 输入控件是您的应用用户界面中的交互式组件.Android 提供了多种可在 UI 中使用的控件,如按钮.文本字段.定位栏.复选框.缩放按钮.切换按钮等. 向 UI 中添加输入控件与向 XML ...

  3. android 基础控件 EditText

    EditText 简介: EditText 控件继承 TextView ,它有TextView的所有属性和方法,并且自身是可编辑的: extends TextView java.lang.Object ...

  4. Android基础控件EditText

    1.常用属性 <!--selectAllOnFocus 获得焦点后全选组件内所有文本内容--> <!--inputType 限制输入方式--> <!--singleLin ...

  5. 使用saripaar对android输入控件进行快速验证

    saripaar是个android的第三方快速校验,使用注解快速添加验证规则. public class LoginActivity extends Activity implements Valid ...

  6. Android 软键盘监听事件

    Android软键盘的隐藏显示研究 Android是一个针对触摸屏专门设计的操作系统,当点击编辑框,系统自动为用户弹出软键盘,以便用户进行输入.     那么,弹出软键盘后必然会造成原有布局高度的减少 ...

  7. 完美解决android软键盘监听

    最近在做应用性能调优,发现在一个包含有输入框的Activity中,当软键盘弹出的时候,如果直接finish掉此Activity,那么在返回到上一个Activity时,界面的渲染会由于软键盘没有及时的收 ...

  8. Android常见控件— — —EditText

    <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=" ...

  9. android 软键盘监听显示和隐藏

    githup中找到:https://github.com/yescpu/KeyboardChangeListener import android.app.Activity; import andro ...

随机推荐

  1. QGIS 2014年7月18日版本

    4. Building on Windows 4.1. Building with Microsoft Visual Studio This section describes how to buil ...

  2. mybatis操作数据库

    导入jar包 共13包 注意:mysql-connction的版本是5.1.7版低版本可能不行 2.编写配置文件 a. 配置连接数据库的文件 a.1创建数据库 user表 a.2配置文件目录 a.2. ...

  3. IOS11下fixed中input光标错位问题

    项目遇到了这个问题,故作了个临时解决方案,暂时没有想到更好的方法,查阅了网上的方案,也没有找到完美的解决方案. 方案思路: ①弹窗打开时,阻止 body 滚动,禁用 touchmove ,同时记录当前 ...

  4. 类之间关系理解:组合>聚合>关联>依赖;实现,继承

    类之间关系理解:组合>聚合>关联>依赖:实现,继承 1. 从类之间的关系来看,不外乎以下几种 组合>聚合>关联>依赖:实现,继承 且可以分为以下两类: (1)实现, ...

  5. Delphi 动态与静态调用DLL(最好的资料)

    摘要:本文阐述了 Windows 环境下动态链接库的概念和特点,对静态调用和动态调用两种调用方式作出了比较,并给出了 Delphi 中应用动态链接库的实例. 一.动态链接库的概念    动态链接库(  ...

  6. KNN PCA LDA

    http://blog.csdn.net/scyscyao/article/details/5987581 这学期选了门模式识别的课.发现最常见的一种情况就是,书上写的老师ppt上写的都看不懂,然后绕 ...

  7. CUDA开发 - CUDA 版本

    "CUDA runtime is insufficient with CUDA driver"CUDA 9.2: 396.xx CUDA 9.1: 387.xx CUDA 9.0: ...

  8. 集体智慧编程-discovering groups

    这一章讲的是利用聚集算法对blog进行分类. 首先是构造数据,找到一组blog,每个blog包含一组单词.这样就形成了(blog-name, word*)*的数据结构. 在构造该数据结构的过程中,还需 ...

  9. ASP.Net C#---Excel导入导入后台方法

    https://www.cnblogs.com/chendaye/p/10693983.html  这里写了Excel的导入导入方法, 后台我用的是MVC 以及 C#语句用来在后台做接受和输出数据 / ...

  10. javascript中string与int之间的转换

    string转int javascript中提供了两种方法转换为数值(int): var str='15'; var str8='015'; var strChar='12abc'; //first ...