Android 软键盘 弹出,默认隐藏,强制隐藏,自动变大写等
来源:互联网 发布:手机日记本软件 编辑:程序博客网 时间:2024/04/30 19:43
经常时不时的需要控制软键盘的不同状态,每次用每次查,自己总结一下所有关于Android软键盘的东西写一块。
1.代码中弹出/隐藏软键盘://view为接受软键盘输入的视图,SHOW_FORCED表示强制显示InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(view,InputMethodManager.SHOW_FORCED); //显示键盘,但是这条代码似乎执行无效果,因此可以使用toggleSoftInput来显示键盘。 imm.hideSoftInputFromWindow(view.getWindowToken(), 0); //隐藏键盘 imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); //如果输入法在窗口上已经显示,则隐藏,反之则显示
//显示键盘public void showSoftKeyboard() { InputMethodManager inputMethodManager = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE); inputMethodManager.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);}//隐藏键盘public void hideSoftKeyboard() { InputMethodManager inputMethodManager = (InputMethodManager)mContext.getSystemService(Context.INPUT_METHOD_SERVICE); inputMethodManager.hideSoftInputFromWindow(mContent.getWindowToken(), 0);}
2.如果只是想界面初始显示时不弹出键盘可以用以下方法:直接在xml添加一个高宽都为0dp的view,设置上属性
android:focusable=”true”
android:focusableInTouchMode=”true”
或者在AndroidManifest.xml里对应的Activity添加
android:windowSoftInputMode=”stateHidden”
//强制隐藏键盘,即使点击Edit也不会弹出。覆盖输入法窗口,如果需要可在edit的touch里清空这个属性getWindow().addFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);//取消强制隐藏键盘getWindow().clearFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
4.设置弹出键盘样式设置输入格式可在EditText设置以下属性:
如果想设置只能输入数字可添加上
android:numeric=”integer”
要想为加上小数
android:numeric=”decimal”
最灵活的设置
android:digits=”0123456789,”
意思为,可输入0-9和逗号,如果想自定义可输入的符号,只需在里面添加即可。
android:inputType属性详解:
http://blog.csdn.net/wyoeap/article/details/8048550
有时键盘弹出需要把界面挤压到上端或直接覆盖界面。
可在AndroidManifest.xml对应的Activity里添加上这条属性:
android:windowSoftInputMode=”参数”
参数详情如下,多个参数之间可用‘|’隔开:
【A】stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置
【B】stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示
【C】stateHidden:用户选择activity时,软键盘总是被隐藏
【D】stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的
【E】stateVisible:软键盘通常是可见的
【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态
【G】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示
【H】adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间
【I】adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分
//自动转化为大写字母。但是转换出来的只是显示为大写字母,存的还是小写字母。
class InputLowerToUpper extends ReplacementTransformationMethod{ @Override protected char[] getOriginal() { char[] lower = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z' }; return lower; } @Override protected char[] getReplacement() { char[] upper = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z' }; return upper; } } editText.setTransformationMethod(new InputLowerToUpper());
也可通过设置 android:inputType=”textCapCharacters”可行,但是就不能一块使用密码键盘了。
//下面这种方法才是真正的将输入的小写字母转换为大写字母addressText.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // TODO Auto-generated method stub addressText.removeTextChangedListener(this);//解除文字改变事件 addressText.setText(s.toString().toUpperCase());//转换 addressText.setSelection(s.toString().length());//重新设置光标位置 addressText.addTextChangedListener(this);//重新绑 // licensePlateNumber = addressText.getText().toString().trim(); } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub } @Override public void afterTextChanged(Editable arg0) { // TODO Auto-generated method stub } });
- Android 软键盘 弹出,默认隐藏,强制隐藏,自动变大写等
- Android 软键盘 弹出,默认隐藏,强制隐藏,自动变大写等
- Android 软键盘 弹出,默认隐藏,强制隐藏,自动变大写等
- Android软键盘强制弹出,隐藏输入法.
- Android软键盘强制弹出,隐藏输入法.
- android 软键盘强制弹出与隐藏
- android自动弹出和隐藏软键盘
- Android:自动弹出/隐藏 输入法软键盘
- Android 强制隐藏软键盘
- android 软键盘弹出隐藏挤压界面等问题
- android 软键盘弹出隐藏挤压界面等问题
- android 软键盘弹出隐藏挤压界面等问题
- Android 软键盘弹出隐藏挤压界面等问题
- android 软键盘弹出隐藏挤压界面等有关问题
- android隐藏软键盘 不自动弹出键盘的方法
- 软键盘弹出/隐藏
- Android EditText设置默认不弹出软键盘,点击EditText外部隐藏软键盘,EditText获取焦点时隐藏hint
- android 下软键盘隐藏和弹出
- 关于android 6.0以上系统的拍照问题
- faster rcnn 中pascal_voc.py
- 算法提高 五次方数
- java泛型中HashSet和TreeSet区别
- AS新功能之InstantRun
- Android 软键盘 弹出,默认隐藏,强制隐藏,自动变大写等
- java工程师相关问题大全
- 461.HammingDistance解题
- python 开源框架学习
- 扫雷
- Maven如何打包本地依赖包和内置变量说明
- Vue-cli 开启 Vuejs 项目----详解
- 虚拟机配置免安装版的tomcat后没有权限 无法启动的解决
- 移动端 Web 开发踩坑之旅