在开发App中,会遇到需要在Dialog中监听Home键和Back键的需求,然后做一些相关功能,怎么监听这两个呢,重写dispatchKeyEvent 就可以了
package com.xinrui.headsettest;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
public class SelectDialog extends Dialog {
public SelectDialog(Context context, int theme) {
super(context, theme);
}
public SelectDialog(Context context) {
super(context);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dialog);
}
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
Log.e("SelectDialog","dispatchKeyEvent:keyCode--"+event.getKeyCode());
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK || event.getKeyCode() == KeyEvent.KEYCODE_HOME) {
//拦截到home和back键然后做相应的功能
dismiss();
return true;
} else {
return super.dispatchKeyEvent(event);
}
}
}