1. 在activity中,back键的监听可以放在事件onKeyDown上此处不在列举
2. 本文只讲解在fragmnet中的返回
大概思路是,获取fragement对应的view,然后,当操作view的时候进行监听,监听keylistener,具体见代码,
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Log.i(TAG, "onCreateView");
if(containerFather == null) {
containerFather = inflater.inflate(R.layout.capacity_test_all, container, false);
initFragment();
capacityDB = new CapacityDBService(getActivity());
transformerDB = new TransformerDBService(getActivity());
init();
endterCounter = 0;
}
ViewGroup parent = (ViewGroup) containerFather.getParent();
if (parent != null) {
parent.removeView(containerFather);
}
containerFather.setFocusable(true);//设置view可以获取焦点。
containerFather.setFocusableInTouchMode(true);
containerFather.setOnKeyListener(backlistener);// 做事件监听
return containerFather;
}
private View.OnKeyListener backlistener = new View.OnKeyListener() {
@Override
public boolean onKey(View view, int i, KeyEvent keyEvent) {
if (keyEvent.getAction() == KeyEvent.ACTION_DOWN) {
if (i == KeyEvent.KEYCODE_BACK) { //表示按返回键 时的操作
String message = "请确定外部三相电源是否断开?";
AlertDialog.Builder builder = new Builder(getActivity());
builder.setMessage(message);
builder.setTitle("提示");
builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent(getActivity(), MainActivity.class);
startActivity(intent);
dialog.dismiss();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
AlertDialog dialog = builder.create();
dialog.setCanceledOnTouchOutside(false);
dialog.show();
}
}
return false;
}
};
思路是从网上找的,但源地址找不到了,不好意思