实现点击输入框外的空白区域隐藏软键盘

来源:互联网 发布:手机sd数据恢复软件 编辑:程序博客网 时间:2024/04/30 09:05

实现点击输入框外的空白区域隐藏软键盘

布局文件
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.example.admin.keyboarddemo.MainActivity"><EditText    android:layout_width="match_parent"    android:id="@+id/ed_text1"    android:hint="请输入用户名"    android:layout_height="50dp" /><EditText    android:layout_width="match_parent"    android:layout_below="@id/ed_text1"    android:hint="请输入密码"    android:id="@+id/et_text_2"    android:layout_height="50dp" /><Button    android:layout_width="wrap_content"    android:text="点击"    android:id="@+id/btn_text"    android:layout_below="@id/et_text_2"    android:layout_height="wrap_content" /></RelativeLayout>
java代码
package com.example.admin.keyboarddemo;import android.content.Context;import android.os.Bundle;import android.support.design.widget.FloatingActionButton;import android.support.design.widget.Snackbar;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.Toolbar;import android.view.View;import android.view.inputmethod.InputMethodManager;public class BaseActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);}/** * @Description: 隐藏软键盘 */protected void hideInputMethod(){    final View view = getCurrentFocus();    if(view != null){        MainActivity.getMainHandler().postDelayed(new Runnable() {            @Override            public void run() {                ((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(view.getWindowToken(),0);            }        },500);    }}/** * @Description:显示软键盘 */protected void showInputMethod(){    View view = getCurrentFocus();    if (view != null) {        InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);        imm.showSoftInput(view, InputMethodManager.SHOW_FORCED);    }}}package com.example.admin.keyboarddemo;import android.os.Handler;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.MotionEvent;import android.view.View;import android.widget.Button;public class MainActivity extends BaseActivity implements View.OnClickListener {private Button btn;@Overrideprotected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    btn = (Button) findViewById(R.id.btn_text);    btn.setOnClickListener(this);}public static Handler getMainHandler(){    Handler handler = new Handler();    return handler;}@Overridepublic boolean onTouchEvent(MotionEvent event) {    if (getCurrentFocus() != null) {        hideInputMethod();    }    return super.onTouchEvent(event);}@Overridepublic void onClick(View v) {    hideInputMethod();}}

注:

所有继承BaseActivity,并且重写onTouchEvent()方法,在方法中调用hideInputMethod()方法的Avtivity都能实现点击空白区域隐藏软件盘。showInputMethod()为显示软键盘的方法,使用同上。
1 0
原创粉丝点击