DialogFragment offen halten

F

Feuerstern

Fortgeschrittenes Mitglied
28
Hallo Leute
Gibt es eine Möglichkeit das eine Klasse, die von DialogFragment abgeleitet ist, sich nicht durch das drücken der "zurück" Taste auf dem Smartphone schließen lässt und wen ja wie?
Also am besten nur durch das drücken der Buttons im Dialog.
Ich freue mich über Antworten.
mit freudlichen Grüßen Feuerstern
 
Zuletzt bearbeitet:
Hmm, die Frage ist vielleicht ein bisschen unglücklich gestellt...
Irgendwas muss im Hintergrund "laufen" damit dein Fragment angezeigt wird. Sprich entweder eine Activity oder ein Service.
Was willst du denn genau machen? Vielleicht reicht es ja auch schon onBackPressed zu überschreiben?
 
Danke für deine schnelle Antwort.
Die Activity soll auch im Hintergrund laufen.
Ich möchte das sich der Dialog nicht schließt wenn ich außerhalb des Dialogs auf den Bildschirm drücke oder auf dem Smartphone die zurück Taste, sondern nur dan wenn ich auf den OK Button im dialog klicke.
 
Okay, dann ist ne Activity ungünstig. Ein Service kannst du als "Treiber" im Hintergrund laufen lassen.
Das Wegdrücken verhindern geht so:
Code:
 final AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("title")
                .setMessage("msg")
[B]                .setCancelable(false)[/B]
                .setPositiveButton("Ja", new DialogInterface.OnClickListener() {
                    public void onClick(@SuppressWarnings("unused") final DialogInterface dialog, @SuppressWarnings("unused") final int id) {
                        startActivity(new Intent(Intent));
                    }
                })
                .setNegativeButton("Nein", new DialogInterface.OnClickListener() {
                    public void onClick(final DialogInterface dialog, @SuppressWarnings("unused") final int id) {
                        dialog.cancel();
                    }
                });
        mAlert = builder.create();
        mAlert.show();

Problem an der Sache ist, dass der Dialog wohl recht stark mit der Activity verzahnt ist (jedenfalls ist er nicht mit einer klassischen "CustomView" zu vergleichen). Sprich ohne Activity könnte es schwer werden ihn aufzurufen / anzuzeigen.

Möglicherweise ist die Kombination Service + WindowManager sinnvoller.
 
  • Danke
Reaktionen: Feuerstern
Das hat funktioniert danke :)
Sah bei mir so aus (falls es jemandne hilft):
Code:
FragmentManager fm = getFragmentManager();
CompareTrueDialogFragment dialog = new CompareTrueDialogFragment();      
dialog.setCancelable(false);
dialog.show(fm, "right_dialog");
 
  • Danke
Reaktionen: ui_3k1

Ähnliche Themen

F
Antworten
4
Aufrufe
911
swa00
swa00
Gemini-Media
Antworten
1
Aufrufe
1.844
swa00
swa00
deka
Antworten
13
Aufrufe
1.295
swa00
swa00
Zurück
Oben Unten