700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > android EditText取消焦点且退出软键盘

android EditText取消焦点且退出软键盘

时间:2023-06-12 23:17:12

相关推荐

android EditText取消焦点且退出软键盘

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 stubInputMethodManager 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 stubInputMethodManager 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);

新手学习作品,如果改进的地方,希望大神指出,谢谢。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。