Ich möchte das Backpress-Ereignis behandeln, wenn ein Popup-Fenster in Android angezeigt wird. Ich mag das. Im Fragmente:Die Override-Methode onBackPressed funktioniert nicht, wenn Popup-Fenster angezeigt wird
@Override
public boolean onBackPressed() {
if (backPressStrategy == BACK_PRESS_PLAN_A) {
if (guideDialog != null) {
guideDialog.dismiss();
}
closeFlashPay(REQ_CLOSE_FLASH_PAY_AND_FINISH);
return true;
} else if (backPressStrategy == BACK_PRESS_PLAN_B) {
if (guideDialog != null) {
guideDialog.dismiss();
}
getActivity().finish();
return true;
} else {
return false;
}
}
Und in der Aktivität, das tue ich wie diese
@Override
public void onBackPressed() {
PayBaseFragment contentFragment = (PayBaseFragment) getSupportFragmentManager().findFragmentByTag(TAG_CONTENT_FRAGMENT);
if (contentFragment != null && contentFragment.onBackPressed()) {
return;
}
super.onBackPressed();
}
Das Problem ist, wenn das erste Mal, dass ich Taste gedrückt zurück, die popupwindow nur Verfahren und die Überschreibung onBackPressed verschwunden wurde nicht aufgerufen. Es sei denn, ich drücke die Taste zweimal. Ich zeige meine Popup-Fenster wie dieses
guideDialog.showAtLocation(getActivity().getWindow().getDecorView(), Gravity.CENTER, 0, 0);
Vielen Dank für Hilfe
Ich denke, der Dialog der Rückseite verbraucht als Abbrechen drücken. Schauen Sie sich http://StackOverflow.com/Questions/10346011/How-to-Handle-Back-Button-with-in-the-dialog – X3Btel
Ich sah diesen Link, das Problem ist, dass ich das Popup-Fenster forcurable gesetzt. Sollte es falsch gesetzt werden – Zijian
Ich bin nicht 100% sicher, was Sie erwarten zu passieren. Setzen Sie onKey Listener im Dialog und rufen Sie dort die Methode closeFlashPay auf – X3Btel