Android EditText的一些小用法
来源:互联网 发布:电竞椅推荐 知乎 编辑:程序博客网 时间:2024/06/06 06:02
EditText是我们最常用的控件之一,一般我们也都没有去看它的源码是怎么实现的,所以它有很多的方法与属性,我们也不得而知。
只是书到用时方恨少。
一,比如:产品要求在弹出的软键盘时,Enter键显示搜索或开始等,
也许您跟我一样,咋一听,懵了,辩解到:这android做不到,只是ios自己的,这都要系统支持的等等。
但真的做不到吗?那为什么别的应用又真的可以做到呢?
答案是肯定的,
很简单,直接在xml中加入android:imeOptions这个属性
<EditText android:id="@+id/edit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="left|center_vertical" android:imeOptions="actionDone" />
其中android:imeOptions指定了弹出键盘时右下角的按键的显示文字,未指定时默认为回车图标。
android:imeOptions="flagNoExtractUi" //使软键盘不全屏显示,只占用一部分屏幕 同时,这个属性还能控件软键盘右下角按键的显示内容,默认情况下为回车键
android:imeOptions="actionNone" //输入框右侧不带任何提示
android:imeOptions="actionGo" //右下角按键内容为'开始'
android:imeOptions="actionSearch" //右下角按键为放大镜图片,搜索
android:imeOptions="actionSend" //右下角按键内容为'发送'
android:imeOptions="actionNext" //右下角按键内容为'下一步'
android:imeOptions="actionDone" //右下角按键内容为'完成'
二,解决了上一个问题后,产品汪又过来了,拍拍你的肩膀,说:GG,能否在进到这个界面时,就弹出这个软键盘?
所以说产品的妹子都是女汉子,欲望强烈,永不满足。
这个肯定也是可以做的,不喜欢研究源码的码农,当时第一时间想到的是度娘。
但度娘也不是万能的,因为当你 把代码copy到工程中,运行发现还是弹不出,这是为什么呢?
少年还是看源码,仔细思考吧。
EditText中有一个变量是InputMethodManager,这个是一个系统服务。而它有一个方法可以弹出软键盘,参数是View,tags
既然有这个方法那为什么不显示呢?原因很可能就是onResume()的时候,这个View还没有画完。所以onMeasure时,它还没有与Window关联。
那是不是只要在onResume()里面加个延时处理,就可以实现呢?理论是完全可行的:
@Override protected void onResume() { super.onResume(); showSoftInput(); } /** * 一进界面就显示软键盘, * 由于显示软键盘时,要持有EidtText所在Window的引用, * 而这个要在onMeasure都测量好后,才能给出, * 所以采用延时处理 */ private void showSoftInput() { shwoSoftInputHandler.postDelayed(new Runnable() { @Override public void run() { shwoSoftInputHandler.sendMessage(shwoSoftInputHandler.obtainMessage()); } },100); } private Handler shwoSoftInputHandler = new Handler(){ @Override public void handleMessage(Message msg) { mEditAccount.requestFocus(); InputMethodManager inputManager = (InputMethodManager) mEditAccount.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); //inputManager.showSoftInputFromInputMethod(mEditAccount.getWindowToken(),0); inputManager.showSoftInput(mEditAccount,InputMethodManager.SHOW_IMPLICIT); } };
运行,发现确实可以了。
看来少年还得抓紧学习!
- Android EditText的一些小用法
- 关于EditText的一些用法
- Android开发中EditText一些用法
- Android EditText的小知识
- [android]EditText的一些设置
- android 的EditText的用法
- android edittext textwatcher的用法
- android EditText的特殊用法
- android EditText的setCompoundDrawables用法
- EditText中一些属性的用法
- __attribute__的一些小用法
- visio的一些小用法~~
- 一些小控件的用法
- android项目中edittext的一些总结
- 有关Android中EditText的一些属性
- Android 关于EditText软键盘的用法
- 【Android控件】之EditText的基本用法
- Android EditText小实验
- android关于handler的内存泄露
- Tasts and Back Stack
- 系统升级到Mac OS X EI Capitan ,安装cocoa pods的问题
- 查表数量
- iOS判断字符串是否包含子字符串
- Android EditText的一些小用法
- C# 函数中的out型参数
- Android 最火的快速开发框架XUtils
- mahout0.11.0的安装及使用
- Gradle 导入错误
- Mina源码阅读笔记(四)—Mina的连接IoConnector
- 微信公众号 修改 应用签名 不生效
- android中的aidl进程间通信
- 自定义Dialog