分享

DownEditTextView【自定义Edittext对Android 软键盘向下的监听】

 小仙女本仙人 2022-01-16

版权声明:本文为HaiyuKing原创文章,转载请注明出处!

前言

记录自定义EditText控件实现监听软键盘隐藏事件的功能。基本上和参考资料相同。

效果图

  

代码分析

自定义EditText子类,然后重写onKeyPreIme方法

    @Override
     public  boolean onKeyPreIme( int keyCode, KeyEvent event) {
         if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == 1 ) {
            Log.i( "DownEditTextView","键盘向下" );
            超级.onKeyPreIme(keyCode, event);
            if (onKeyBoardHideListener != null ){
                onKeyBoardHideListener.onKeyHide(keyCode, event); //回调
            }
             return  false ;
        }
        返回 超级.onKeyPreIme(keyCode, event);
    }

使用步骤

一、项目组织结构图

注意事项:

1、  导入类文件后需要change包名以及重新import R文件路径

2、  Values目录下的文件(strings.xml、dimens.xml、colors.xml等),如果项目中存在,则复制里面的内容,不要整个覆盖

二、导入步骤

将DownEditTextView复制到项目中

com.why.project.androidcnblogsdemo.views.customedittext;

导入android.annotation.SuppressLint;
导入android.content.Context;
导入android.util.AttributeSet;
导入android.util.Log;
导入android.view.KeyEvent;
导入android.widget.EditText;

/**
 * 海育王创作
 * Used 对Android 软键盘向下的监听:https://blog.csdn.net/yxhuang2008/article/details/53822072
 * Android软键盘弹出和收回监听:https://blog.csdn.net/wangkai1101/article/details/79066046
 */

@SuppressLint( "AppCompatCustomView" )
公共 DownEditTextView扩展EditText {
     public DownEditTextView(Context context) {
         super (context);
    }

    public DownEditTextView(Context context, AttributeSet attrs) {
         super (context, attrs);
    }

    public DownEditTextView(上下文上下文,AttributeSet attrs,int defStyleAttr){
        超级(上下文,attrs,defStyleAttr);
    }

    @覆盖
    public  boolean onKeyPreIme( int keyCode, KeyEvent event) {
         if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == 1 ) {
            Log.i( "DownEditTextView","键盘向下" );
            超级.onKeyPreIme(keyCode, event);
            if (onKeyBoardHideListener != null ){
                onKeyBoardHideListener.onKeyHide(keyCode, event); //回调
            }
             return  false ;
        }
        返回 超级.onKeyPreIme(keyCode, event);
    }

    /**
     *键盘监听接口
     */ 
    public OnKeyBoardHideListener onKeyBoardHideListener;
    公共 无效setOnKeyBoardHideListener(OnKeyBoardHideListener onKeyBoardHideListener) {
         this .onKeyBoardHideListener = onKeyBoardHideListener;
    }

    公共 接口OnKeyBoardHideListener{
         void onKeyHide( int keyCode, KeyEvent event);
    }
}

输入框背景图片资源input_box_send.9.png

三、使用方法

在布局文件中引用这个自定义控件【注意,实际项目中需要更改DownEditTextView的完整路径

<?xml 版本="1.0" 编码="utf-8"?>
<!-- 自定义EditText的演示(监听软键盘隐藏) -->
<LinearLayout xmlns:android="http://schemas./apk/res/android"
    机器人:方向=“垂直”
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    < com.why.project.androidcnblogsdemo.views.customedittext .DownEditTextView
        android:id="@+id/edt_down"
        android:layout_width="match_parent"
        android:layout_height="48dp"
        安卓:inputType="文本"
        android:hint="演示监听软键盘隐藏功能"
        机器人:线=“1”
        android:background="@drawable/input_box_send"
        android:layout_margin="8dp"
        />

</线性布局>

 

Activity中使用

com.why.project.androidcnblogsdemo.activity;

导入android.os.Bundle;
导入android.support.v7.app.AppCompatActivity;
导入android.view.KeyEvent;
导入android.widget.Toast;

导入com.why.project.androidcnblogsdemo.R;
导入com.why.project.androidcnblogsdemo.views.customedittext.DownEditTextView;

/**
 * 海育王创作
 * Used 自定义EditText的演示(监听软键盘隐藏)
 */

公共 DownEditTextActivity扩展AppCompatActivity {
    私有DownEditTextView mDownEditTextView;

    @覆盖
    protected  void onCreate (Bundle savedInstanceState) {
          super .onCreate (savedInstanceState);
        setContentView(R.layout.activity_downedittext);

        初始化视图();
        初始化事件();
    }

    私人 无效initViews(){
        mDownEditTextView = (DownEditTextView) findViewById(R.id.edt_down);
    }

    私人 无效initEvents(){
         mDownEditTextView.setOnKeyBoardHideListener(DownEditTextView.OnKeyBoardHideListener(){
            @覆盖
            公共 无效onKeyHide(int keyCode,KeyEvent事件){
                Toast.makeText(DownEditTextActivity.this,"软键盘隐藏了",Toast.LENGTH_SHORT).show();
            }
        });
    }
}

混淆配置

参考资料

对Android 软键盘向下的监听

Android软键盘弹出和收回监听

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多