(原)android的alertdialog中加入edittext但是不弹出软键盘等问题的解决与原因
摘要:alertdialog中加入edittext但是不弹出软键盘等问题网上有很多不管用的解决方案,
本文意在给出更有效的解决办法,并初步探究其原因
正文
在对话框中插入文本框是十分常见的需求
通常我们选择在代码中创建edittext对象
这个时候就需要在代码中给edittext设置输入属性了
但是经常发现设置的属性不起作用,甚至都不弹出软键盘(虽然实体键盘可以输入)
问题的解决方案有很多种,这里介绍一种我比较常用的方法:
inputPassEditText.setInputType(InputType.TYPE_CLASS_TEXT|InputType.XXX);
就是在设置输入type的时候,按位或上一个inputtype.TYPE_CLASS_TEXT
它在16进制中是0x80
例如一个密码输入对话框可以这么写
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
final EditText inputPassEditText = new EditText(MainActivity.this);
builder.setView(inputPassEditText); //输入框是密码风格的
inputPassEditText.setInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_VARIATION_PASSWORD);
这样不仅解决了软键盘不弹出的问题,而且也得到了预期的输入效果.
问题解决.
=========================华丽分割线,下面更精彩===================================
其实InputType是android当中的一个类
android.text.InputType
这个类并没有什么方法,只有几十个静态常量
TYPE_CLASS_TEXT就是其中最常用的一个
以TYPE_CLASS开头的常量共有这四种
int TYPE_CLASS_DATEtIME
int TYPE_CLASS_NUMBER
int TYPE_CLASS_PHONE
int TYPE_CLASS_TEXT
Examples它们的用法示例
- A password field with with the password visible to the user:(可视的密码输入区域)
- inputType = TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
- A multi-line postal address with automatic capitalization:(邮政格式的多行输入)
- inputType = TYPE_CLASS_TEXT | TYPE_TEXT_VARIATION_POSTAL_ADDRESS | TYPE_TEXT_FLAG_MULTI_LINE
- A time field:(输入时间)
- inputType = TYPE_CLASS_DATETIME | TYPE_DATETIME_VARIATION_TIME
可见google的api暴露给我们的用法就是利用CLASS与FLAG等按位或来达到想要的效果(google精心设计了每个常量的2进制位)
这里我给出两个常用的例子:
输入数字密码
inputPassEditText.setInputType(InputType.TYPE_CLASS_NUMBER|InputType.TYPE_NUMBER_VARIATION_PASSWORD);
输入数字明文:
inputPassEditText.setInputType(InputType.TYPE_CLASS_NUMBER|InputType.TYPE_NUMBER_VARIATION_NORMAL);
具体的用法还有很多,在此就不一一列举了,有兴趣的读者可以去查阅google文档.
(原)android的alertdialog中加入edittext但是不弹出软键盘等问题的解决与原因的更多相关文章
- (转载) EditText初始不弹出软键盘,只有光标显示,点击再弹出
EditText初始不弹出软键盘,只有光标显示,点击再弹出 2013-06-08 10:13 21305人阅读 评论(5) 收藏 举报 分类: android基础(91) 版权声明:本文为博主原创 ...
- EditText默认不弹出软键盘
#EditText默认不弹出软键盘# 网上关于EditText默认情况下不弹出软键盘,当手触摸到EditText,获取焦点时候,才会弹出软键盘,貌似都不能用,其实,在oncreate()方法中,加上 ...
- Android--点击EditText的时候弹出软键盘,点击EditText之外空白处软键盘消失
在android中点击EditText的时候会弹出软键盘,但当我们输入完毕或者想隐藏软键盘时,我们可以点击软键盘上的隐藏按钮,这种方法固然可行,但是为了提高用户体验,我们常常要实现这种功能:当输入完毕 ...
- Android开发之使一打开activity等界面Edittext获取焦点,弹出软键盘java代码实现
// 获取编辑框焦点 editText.setFocusable(true); //打开软键盘 IInputMethodManager imm = (InputMethodManager)getSys ...
- 设置光标聚焦输入框(EditText)并弹出软键盘(在适配器中设置)
参考代码: public void setFocusEditTextAndShowSoftInput(final EditText editText){ editText.setFocusable(t ...
- android edittext 获取焦点并弹出软键盘
editText.setFocusable(true); editText.setFocusableInTouchMode(true); editText.requestFocus(); activi ...
- EditText根据焦点弹出软键盘
//每次启动都清除焦点 myCourse_roomId_input.setText(""); myCourse_roomId_input.clearFocus(); //判断是否获 ...
- android edittext不弹出软键盘
方法一: 在AndroidMainfest.xml中选择哪个activity,设置windowSoftInputMode属性为adjustUnspecified|stateHidden 例如:< ...
- Android 自定义AlertDialog的写法和弹出软键盘和覆盖状态栏
private void showMyDialog(int layoutId){ AlertDialog myDialog = new AlertDialog.Builder(context).cre ...
随机推荐
- C#进阶系列——AOP?AOP!
前言:今天大阅兵,可是苦逼的博主还得坐在电脑前写博客,为了弄清楚AOP,博主也是拼了.这篇打算写写AOP,说起AOP,其实博主接触这个概念也才几个月,了解后才知道,原来之前自己写的好多代码原理就是基于 ...
- sFlow-RT
sFlow-RT™ incorporates InMon's asynchronous analytics technology (patent pending), delivering real-t ...
- React2
1.属性 a. 属性和状态是react中数据传递的载体: b. 属性是声明以后不允许被修改的东西: c. 属性只能在组件初始化的时候声明并传入组件内部,并且在组件内部通过this.props获取: d ...
- Pyhont-Urllib2
Urllib2 相当于的Urllib 的升级版 但又不能代替 Urllib 这个我得新手很费解呢...这个问题留着把,,等以后成大牛的时候在回来想想这儿问题!! Urllib2 常用 // 1 设置 ...
- deepin 15.3 安装配置nginx
1.安装nginx sudo apt-get install nginx 2.配置nginx sudo gedit /etc/nginx/sites-enabled/default 找到:index ...
- <<< 网页中如何利用原生js和jquery储存cookie
javascript当中的cookie机制,使应用达到了真正的全局变量的要求,cookie是浏览器提供的一种机制,它将document 对象的cookie属性提供给JavaScript.可以由Java ...
- <<< Oracle序列的创建、修改、删除基本操作
序列是一个命名的顺序编号生成器,可以被多个用户共享,类似sqlserver中的identity create sequence 序列名; //直接创建一个序列 CREATE SEQUENCE 序列名; ...
- 简要介绍BASE64、MD5、SHA、HMAC几种方法。
加密解密,曾经是我一个毕业设计的重要组件.在工作了多年以后回想当时那个加密.解密算法,实在是太单纯了. 言归正传,这里我们主要描述Java已经实现的一些加密解密算法,最后介绍数字证书. ...
- 纯js+css实现loading等待效果
此插件是基于jqueryUI的widget,下面是具体实现代码 第一部分css: /***loading***/ .loading-box{ position:absolute; text-align ...
- 11月8日PHP练习《留言板》
一.要求 二.示例页面 三.网页代码及网页显示 1.denglu.php 登录页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tran ...