【发布时间】:2017-10-15 21:27:11
【问题描述】:
【问题讨论】:
标签: android
【问题讨论】:
标签: android
您可以使用以下方法处理按下的后退按钮:
// When not using fragments
@Override
public void onBackPressed() {
// Check if no view has focus:
View view = this.getCurrentFocus();
if (view != null) {
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
}
onBackPressed 方法内部的代码在这里找到; Close/hide the Android Soft Keyboard
// When using a fragment
fragment.getView().setFocusableInTouchMode(true);
fragment.getView().requestFocus();
fragment.getView().setOnKeyListener( new OnKeyListener()
{
@Override
public boolean onKey( View v, int keyCode, KeyEvent event )
{
if( keyCode == KeyEvent.KEYCODE_BACK )
{
// Check if no view has focus:
View view = this.getCurrentFocus();
if (view != null) {
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
}
return false;
}
} );
【讨论】:
您可以使用onKeyPreIme 方法来处理按钮的点击。
@Override
public boolean onKeyPreIme(int keyCode, KeyEvent event) {
return true;
}
【讨论】: