Basierend auf einem YouTube-Tutorial-Video (https://www.youtube.com/watch?v=wxqgtEewdfo), die das Erstellen von Popup-Fenstern lehrt, habe ich mich gefragt, wie das Popup mit einem Touch-Ereignis im Gegensatz zu den Zurück-Taste ...Deaktivieren der Zurück-Taste für Popup-Fenster
hier MainActivity:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RelativeLayout relative = (RelativeLayout)findViewById(R.id.relativeTest);
Button button = (Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LayoutInflater layoutInflater = (LayoutInflater) getApplicationContext().
getSystemService(LAYOUT_INFLATER_SERVICE);
ViewGroup container = (ViewGroup) layoutInflater.inflate(R.layout.myLayout, null);
PopupWindow popupWindow = new PopupWindow(container, AbsListView.LayoutParams.MATCH_PARENT,
AbsListView.LayoutParams.MATCH_PARENT, true);
popupWindow.showAtLocation(relative, Gravity.CENTER, 0, 0);
container.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
popupWindow.dismiss();
return true;
}
});
}
});
}
@Override
public void onBackPressed() {
// I want the back button to be disabled for both MainActivity and the
// popup window.
}
... Soll ich stelle onBackPressed() an anderer Stelle oder wäre das auch möglich sein?
Vielen Dank im Voraus.
Sie können onBackPressed überschreiben und eine Logik verwenden (z. B. prüfen, ob das Popup angezeigt wird). Rufen Sie in Situationen, in denen Sie backPressed verwenden möchten, nur super.onBackPressed auf. Zum Beispiel 'if (! MPopupWindow.isShowing()) super.onBackPressed();' – zgc7009
Mögliches Duplikat von [Android-Popup-Fensterabweisung] (http://stackoverflow.com/questions/3121232/android-popup-window-dismissal) –
@ zgc7009 Ich weiß, was du meinst und das ist, was ich früher gemacht habe, aber ich habe hier getauscht ... Ich möchte die Zurück-Schaltfläche im Allgemeinen für activity_main und das Popup deaktivieren (nur durch ein Touch-Ereignis absetzbar), und es funktioniert irgendwie nur für Geräte unter API 23 (6.0). – DaveNOTDavid