android EditText取消焦点且退出软键盘
来源:互联网 发布:oracle删除字段数据 编辑:程序博客网 时间:2024/06/11 04:49
android EditText取消焦点且退出软键盘
最近发现,如果在一个activity中直接加入EditText的话,每次打开这个activity的时候,就会自动打开软键盘,并且点哪里都取消不了。这会给用户一种特别糟糕的体验。
为了解决这种方法,想了一个解决的思路,就是点击背景就取消焦点并且退出软键盘,由于这个方法应该在所有拥有EditText的地方使用,所以就写成了一个工具类,用来调用
package com.baibian.tool;import android.app.Activity;import android.util.Log;import android.view.MotionEvent;import android.view.View;import android.view.ViewGroup;import android.view.inputmethod.InputMethodManager;import android.widget.EditText;import java.util.List;/** * 这个工具类用来处理 */public class UI_Tools { private List<ViewGroup> listViewGroup; private List<EditText> listEditText; public int i = 0; public UI_Tools() { } /** * 这个方法用来使得EditText,,点击其他地方的时候,取消焦点并且退出软键盘。。在有EditView的地方都应该调用这个方法。 * 传入的三个参数,第一个是活动,第二个是取消焦点要点击的地方,比如背景layout,listview之类的,第三个参数是其中一个edittext,只需要传入一个就可以达到效果 */ public void CancelFocus(final Activity activity, final List<ViewGroup> listViewGroup, final EditText edittext) { System.out.print(listViewGroup.size()); for (; i < listViewGroup.size(); i++) { listViewGroup.get(i) .setFocusable(true); listViewGroup.get(i) .setFocusableInTouchMode(true); listViewGroup.get(i) .setFocusable(true); listViewGroup.get(i) .setFocusableInTouchMode(true); listViewGroup.get(i) .requestFocus(); listViewGroup.get(i) .setOnTouchListener(new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub InputMethodManager imm = (InputMethodManager) activity.getSystemService(activity.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(edittext.getWindowToken(), 0);//这行代码隐藏软键盘 return false; } }); } } //一个布局的取消焦点 public void CancelFocusOne(final Activity activity, final ViewGroup viewGroup, final EditText edittext) { viewGroup .setFocusable(true); viewGroup .setFocusableInTouchMode(true); viewGroup .setFocusable(true); viewGroup .setFocusableInTouchMode(true); viewGroup .requestFocus(); viewGroup .setOnTouchListener(new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub InputMethodManager imm = (InputMethodManager) activity.getSystemService(activity.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(edittext.getWindowToken(), 0);//这行代码隐藏软键盘 return false; } }); }}
调用的关键代码:
UI_Tools ui_tools = new UI_Tools(); ui_tools.CancelFocusOne(this, edit_information_all_layout, user_name_edittext);
新手学习作品,如果改进的地方,希望大神指出,谢谢。
0 0
- android EditText取消焦点且退出软键盘
- android强制隐藏软键盘以及取消EditText的焦点
- 【Android学习笔记】Edittext阻止软键盘自动弹出与取消焦点
- 取消edittext获取焦点,禁止弹出软键盘
- EditText取消自动获取焦点不让自动跳出软键盘
- Android EditText 软键盘和焦点问题
- Android:EditText 软键盘退出监听解决方法
- android取消EditText的焦点
- Android设置默认取消获得焦点或显示软键盘
- android EditText 去掉焦点和关闭软键盘
- Android EditText重新获取焦点弹出软键盘,选中内容
- android 自动弹出软键盘,EditText自动获取焦点
- android EditText 自动获取焦点并弹出软键盘
- Android EditText获取焦点并弹出软键盘
- android软键盘的隐藏以及Edittext的焦点问题
- Android 设置Edittext获取焦点并弹出软键盘
- Android EditText获取焦点并弹出软键盘
- Android Dialog 中的EditText自动获取焦点弹出软键盘
- RactiveJS-02 Nested properties
- ACM必练50题
- iOS-常用 Git 命令清单
- android系统源码之 系统应用安装过程(上)
- 网易面试题——分饼干
- android EditText取消焦点且退出软键盘
- 杭电oj——1004(java版)Let the Balloon Rise
- RactiveJS-03 Expressions
- 【JVM】之 一些未解决问题
- [Java 数值] 数值类型之间的转换
- LabVIEW查找范例教程
- PAT_1025. PAT Ranking
- Swift语法摘要
- Eclipse下载Github上FastDFS-Client源码并转化成Maven工程以及打包到本地Maven仓库