当前位置: 代码迷 >> Android >> Android中在输入法事前截获返回键
  详细解决方案

Android中在输入法事前截获返回键

热度:25   发布时间:2016-04-28 02:30:30.0
Android中在输入法之前截获返回键

本人的使用场景:在输入法显示时候按返回键,如果存在PopupWindow则先隐藏PopupWidow。

达到这一目的分以下几个步骤:

一、自定义EditText:

public class InputMethodEditText extends EditText{
private PopuJar mPopup;//自定义的PopupWindow控件
public PopuJar getmPopup() {
return mPopup;
}
public void setmPopup(PopuJar mPopup) {
this.mPopup = mPopup;
}
public InputMethodEditText(Context context) {
super(context);
}
public InputMethodEditText(Context context, AttributeSet attrs) {
super(context, attrs);
}
public InputMethodEditText(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
}


@Override
public boolean dispatchKeyEventPreIme(KeyEvent event) {

if(event.getKeyCode() == KeyEvent.KEYCODE_BACK && mPopup != null && mPopup.isShow()){

//这里先于输入法之前截获返回键,并隐藏我的PopupWindow控件
mPopup.dismiss();
return true;
}
return super.dispatchKeyEventPreIme(event);
}

}

二、主控代码:messageInput = (InputMethodEditText) findViewById(R.id.chat_content);
messageInput.setmPopup(mPopu);

//下面代码将输入法与当前的自定义EditText绑定,
mImm = (InputMethodManager)  
                messageInput.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);

经过以上两步操作就可以实现在输入法之前截获Android back键,小记备用。

  相关解决方案