含有EditText,屏蔽系统软键盘
来源:互联网 发布:vnr网络连接不畅 编辑:程序博客网 时间:2024/04/25 19:42
转载请注明原文地址:http://blog.csdn.net/forwardyzk/article/details/36900497
一.使用EditText时,不让其弹出系统的小键盘,而是使用自定义的小键盘。
操作步骤:
在初始化时,获取EditText对象后,
EditText editText =(EditText)this.findViewById(R.id.et_editText_pass);
editText.setInputType(InputType.TYPE_NULL);
editText.setOnTouchListener(newView.OnTouchListener() {
@Override
publicboolean onTouch(View arg0, MotionEvent event) {
intinType = editText.getInputType();
editText.setInputType(InputType.TYPE_NULL);
editText.onTouchEvent(event);
editText.setInputType(inType);
intlen = editText.getText().toString().length();
editText.setSelection(len);
editText.setBackgroundResource(R.drawable.customer_item_blue);
returntrue;
}
});
解释1.
editText.setInputType(InputType.TYPE_NULL);这样是把输入的方式值为空,这样是进入这个页面后,不弹出系统的键盘。
这样就可以把系统的软键盘屏蔽掉,直接使用自定义的键盘进行操作。
解释2:
editText.setOnTouchListener(newView.OnTouchListener() {
@Override
publicboolean onTouch(View arg0, MotionEvent event) {
intinType = editText.getInputType();
editText.setInputType(InputType.TYPE_NULL);
editText.onTouchEvent(event);
editText.setInputType(inType);
intlen = editText.getText().toString().length();
editText.setSelection(len);
editText.setBackgroundResource(R.drawable.customer_item_blue);
returntrue;
}
});
处理的是,当点击EditText后,也不让弹出系统的键盘。
二.如果EditText输入的是密码.那么上一个方法就不能使用了,因为如果使用editText.setInputType(InputType.TYPE_NULL);默认的不弹出系统的小键盘。
你设置EditText的属性
android:inputType="textPassword"
android:password="true"
那么你输入的字符时,显示的不是密码。也就是其设置的属性不再起作用。
解决方案有两种:
1.使用第一种方案解决,那么手动的将输入的字符转变为*号或者逗点。这种方案是比较麻烦和复杂的。
2.在获取EditText前,增加这个这句代码:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 屏蔽系统的键盘。
当然也要增加
editText.setOnTouchListener(newView.OnTouchListener() {
@Override
publicboolean onTouch(View arg0, MotionEvent event) {
intinType = editText.getInputType();
editText.setInputType(InputType.TYPE_NULL);
editText.onTouchEvent(event);
editText.setInputType(inType);
intlen = editText.getText().toString().length();
editText.setSelection(len);
editText.setBackgroundResource(R.drawable.customer_item_blue);
returntrue;
}
});
防止点击EditText的时候,弹出系统的键盘
附加内容:
如果使用外接键盘输入密码,如果外接键盘不起作用,可以给EditText增加这两个属性,
android:focusable="true"
android:clickable="true"
对于为什么这样,具体的原因不是很清楚,只是知道这样设置后,就可以使用外接键盘输入了。也许和焦点有关系,还需要大家给讲解。
- 含有EditText,屏蔽系统软键盘
- Android edittext屏蔽系统软键盘
- editText屏蔽软键盘
- android EditText 屏蔽软键盘
- Android屏蔽EditText软键盘
- Android屏蔽EditText的软键盘
- Android屏蔽EditText的软键盘
- Android EditText控件屏蔽软键盘
- android中的EditText怎么屏蔽软键盘以及在屏蔽软键盘弹出其它对像
- AlertDialog中含有EditText不显示软键盘
- android Edittext 输入法软键盘屏蔽,有光标
- Android Edittext 输入法软键盘屏蔽,有光标
- EditText 设置光标位置及点击屏蔽软键盘
- EditText实现点击屏蔽软键盘并展示自定义键盘
- Android EditText与系统软键盘
- android中的EditText如何屏蔽软键盘以及在屏蔽软键盘弹出其它对话框之类的控件的问题
- 屏蔽android软键盘
- android屏蔽软键盘
- 机器学习中的数学(1)-回归和梯度下降
- Kia's Calculation(贪心)
- sikuli轻松完成新版IPC字幕设置的自动化测试
- Ubuntu中完全卸载Nginx
- c++ 模板函数的一处小坑
- 含有EditText,屏蔽系统软键盘
- 鼠标事件
- 第六十题(在O(1)时间内删除链表结点)
- xmpp mina模型线程池
- eclipse 配置 C++ 11 -- ubuntu 12.04
- Oracle:ORA-00001 违反唯一约束条件
- 21个免费的UI界面设计工具、资源及网站
- 用"再生龙"Clonezilla 来克隆Linux系统
- nagios 插件编写:检查磁盘状况