|
版權(quán)聲明:本文為HaiyuKing原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處! 前言記錄自定義EditText控件實(shí)現(xiàn)監(jiān)聽(tīng)軟鍵盤隱藏事件的功能?;旧虾蛥⒖假Y料相同。 效果圖
代碼分析自定義EditText子類,然后重寫onKeyPreIme方法 @Override public boolean onKeyPreIme( int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == 1 ) { Log.i( "DownEditTextView","鍵盤向下" ); 超級(jí).onKeyPreIme(keyCode, event); if (onKeyBoardHideListener != null ){ onKeyBoardHideListener.onKeyHide(keyCode, event); //回調(diào) } return false ; } 返回 超級(jí).onKeyPreIme(keyCode, event); } 使用步驟一、項(xiàng)目組織結(jié)構(gòu)圖
注意事項(xiàng): 1、 導(dǎo)入類文件后需要change包名以及重新import R文件路徑 2、 Values目錄下的文件(strings.xml、dimens.xml、colors.xml等),如果項(xiàng)目中存在,則復(fù)制里面的內(nèi)容,不要整個(gè)覆蓋 二、導(dǎo)入步驟將DownEditTextView復(fù)制到項(xiàng)目中包com.why.project.androidcnblogsdemo.views.customedittext; 導(dǎo)入android.annotation.SuppressLint; 導(dǎo)入android.content.Context; 導(dǎo)入android.util.AttributeSet; 導(dǎo)入android.util.Log; 導(dǎo)入android.view.KeyEvent; 導(dǎo)入android.widget.EditText; /** * 海育王創(chuàng)作 * Used 對(duì)Android 軟鍵盤向下的監(jiān)聽(tīng):https://blog.csdn.net/yxhuang2008/article/details/53822072 * Android軟鍵盤彈出和收回監(jiān)聽(tīng):https://blog.csdn.net/wangkai1101/article/details/79066046 */ @SuppressLint( "AppCompatCustomView" ) 公共 類DownEditTextView擴(kuò)展EditText { public DownEditTextView(Context context) { super (context); } public DownEditTextView(Context context, AttributeSet attrs) { super (context, attrs); } public DownEditTextView(上下文上下文,AttributeSet attrs,int defStyleAttr){ 超級(jí)(上下文,attrs,defStyleAttr); } @覆蓋 public boolean onKeyPreIme( int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == 1 ) { Log.i( "DownEditTextView","鍵盤向下" ); 超級(jí).onKeyPreIme(keyCode, event); if (onKeyBoardHideListener != null ){ onKeyBoardHideListener.onKeyHide(keyCode, event); //回調(diào) } return false ; } 返回 超級(jí).onKeyPreIme(keyCode, event); } /** *鍵盤監(jiān)聽(tīng)接口 */ public OnKeyBoardHideListener onKeyBoardHideListener; 公共 無(wú)效setOnKeyBoardHideListener(OnKeyBoardHideListener onKeyBoardHideListener) { this .onKeyBoardHideListener = onKeyBoardHideListener; } 公共 接口OnKeyBoardHideListener{ void onKeyHide( int keyCode, KeyEvent event); } } 輸入框背景圖片資源input_box_send.9.png
三、使用方法在布局文件中引用這個(gè)自定義控件【注意,實(shí)際項(xiàng)目中需要更改DownEditTextView的完整路徑】<?xml 版本="1.0" 編碼="utf-8"?>
<!-- 自定義EditText的演示(監(jiān)聽(tīng)軟鍵盤隱藏) -->
<LinearLayout xmlns:android="http://schemas./apk/res/android"
機(jī)器人:方向=“垂直”
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="演示監(jiān)聽(tīng)軟鍵盤隱藏功能"
機(jī)器人:線=“1”
android:background="@drawable/input_box_send"
android:layout_margin="8dp"
/>
</線性布局>
Activity中使用包com.why.project.androidcnblogsdemo.activity; 導(dǎo)入android.os.Bundle; 導(dǎo)入android.support.v7.app.AppCompatActivity; 導(dǎo)入android.view.KeyEvent; 導(dǎo)入android.widget.Toast; 導(dǎo)入com.why.project.androidcnblogsdemo.R; 導(dǎo)入com.why.project.androidcnblogsdemo.views.customedittext.DownEditTextView; /** * 海育王創(chuàng)作 * Used 自定義EditText的演示(監(jiān)聽(tīng)軟鍵盤隱藏) */ 公共 類DownEditTextActivity擴(kuò)展AppCompatActivity { 私有DownEditTextView mDownEditTextView; @覆蓋 protected void onCreate (Bundle savedInstanceState) { super .onCreate (savedInstanceState); setContentView(R.layout.activity_downedittext); 初始化視圖(); 初始化事件(); } 私人 無(wú)效initViews(){ mDownEditTextView = (DownEditTextView) findViewById(R.id.edt_down); } 私人 無(wú)效initEvents(){ mDownEditTextView.setOnKeyBoardHideListener(新DownEditTextView.OnKeyBoardHideListener(){ @覆蓋 公共 無(wú)效onKeyHide(int keyCode,KeyEvent事件){ Toast.makeText(DownEditTextActivity.this,"軟鍵盤隱藏了",Toast.LENGTH_SHORT).show(); } }); } } 混淆配置無(wú) 參考資料 |
|
|