设置EditText获得焦点,同时弹出小键盘
来源:互联网 发布:windows安装git 编辑:程序博客网 时间:2024/05/22 01:55
关于这个EditText获得焦点,弹出小键盘的问题,前不久的项目中纠结了笔者一段时间需求是:进入Activity后,让EditText获得焦点,同时弹出小键盘供用户输入!试了很多网上的方法都不可以,不知道是不是因为笔者用的5.1的系统的问题!下面小结下:
首先是让EditText获得焦点与清除焦点的
edit.requestFocus(); //请求获取焦点
edit.clearFocus(); //清除焦点
获得焦点后,弹出小键盘,笔者大部分时间就花在这个上:
- 低版本的系统直接requestFocus就会自动弹出小键盘了
- 稍微高一点的版本则需要我们手动地去弹键盘:第一种:
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
第二种:
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(view,InputMethodManager.SHOW_FORCED); imm.hideSoftInputFromWindow(view.getWindowToken(), 0); //强制隐藏键盘
不知道是什么原因,上面这两种方法并没有弹出小键盘,笔者最后使用了:windowSoftInputMode属性解决了弹出小键盘的问题,这里跟大家分享下:
android:windowSoftInputModeActivity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。
这个属性能影响两件事情:
【一】当有焦点产生时,软键盘是隐藏还是显示
【二】是否减少活动主窗口大小以便腾出空间放软键盘简单点就是有焦点时的键盘控制以及是否减少Act的窗口大小,用来放小键盘
有下述值可供选择,可设置多个值,用"|"分开
stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置
stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示
stateHidden:用户选择activity时,软键盘总是被隐藏
stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的
stateVisible:软键盘通常是可见的
stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态
adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示
adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间
adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分
我们可以在AndroidManifest.xml为需要弹出小键盘的Activity设置这个属性,比如:
然后在EditText对象requestFocus()就可以了~
8.EditText光标位置的控制
有时可能需要我们控制EditText中的光标移动到指定位置或者选中某些文本!
EditText为我们提供了setSelection()的方法,方法有两种形式:
一个参数的是设置光标位置的,两个参数的是设置起始位置与结束位置的中间括的部分,即部分选中!
当然我们也可以调用setSelectAllOnFocus(true);让EditText获得焦点时选中全部文本!
另外我们还可以调用setCursorVisible(false);设置光标不显示
还可以调用getSelectionStart()和getSelectionEnd获得当前光标的前后位置
- 设置EditText获得焦点,同时弹出小键盘
- EditText获得焦点时阻止输入法弹出
- EditText获得焦点时阻止输入法弹出
- Android中设置EditText获得焦点时不弹出软键盘
- Android中设置EditText获得焦点时不弹出软键盘
- Android开发设置EditText不获得焦点
- 关于EditText获得焦点不弹出软键盘
- EditText强制获得焦点
- EditText 初始化,默认不弹出小键盘
- edittext设置获得焦点时的边框颜色
- edittext设置获得焦点时的边框颜色
- 安卓设置EditText获得焦点时不显示输入法
- EditText边框设置,获得焦点颜色变深,失去变浅
- 设置EditText自动获取焦点并弹出输入法
- EditText获取焦点不自动弹出键盘设置
- 设置EditText自动获取焦点并弹出输入法
- Android 设置Edittext获取焦点并弹出软键盘
- EditText不自动获得输入焦点(以及 获得焦点但不弹出输入法软键盘的方法)
- spring多个定时器的写法
- Java RMI 框架(远程方法调用Remote Method Invoke)
- C语言strcpy()库函数的实现
- 任正非致歉华为前程序员:回来吧,公司错了
- springMVC前台传递日期类型到后台
- 设置EditText获得焦点,同时弹出小键盘
- WOJ1288-Changing String
- 基于GPU加速的二维TTI介质一阶拟声波方程有限差分地震正演模拟
- Ruby 日期 & 时间(Date & Time)
- web.xml配置文件标签元素详解
- Spring之组件bean的生命周期
- 蘑菇街小程序开发系统公司
- linux下usb传输实现
- CSDN-markdown编辑器-使用手册