Handle-Schaltfläche klickt in einem DialogFragment

8

Ich habe Fragment, das DialogFragment erweitert, und ich habe ein benutzerdefiniertes Layout dafür, das zwei Edittexte und zwei Buttons enthält - OK und Abbrechen. Mein Dialog zeigt gut an, indem ich die onCreateView-Methode zur Angabe des Layouts verwende, aber ich weiß nicht, wie man mit Button-Klicks umgeht. In der onCreateView-Methode funktioniert button.setOnClickListener nicht. Das mag eine einfache Lösung sein, aber ich stecke mehrere Stunden fest. Ich würde einen Rat oder Beispielcode sehr schätzen.

PS Ich möchte AlertDialog nicht verwenden, da in diesem Fall der Dialog automatisch geschlossen wird, wenn ich auf die Schaltfläche OK klicke, und ich kann keine Überprüfung für den Editiertext durchführen (Beispiel: wenn der Benutzer OK drückt) und die Edittext sind leer. Ich möchte nicht, dass der Dialog verschwindet). So ging ich mit der Option zum Erstellen eines benutzerdefinierten Dialogfelds und einfach das Verhalten der Schaltflächen zu verwalten.

    
Sandra 24.08.2012, 15:09
quelle

6 Antworten

5

Machen Sie diese Zeilen

%Vor%     
nandeesh 24.08.2012, 15:12
quelle
9

Dies ist der Code für einen Dialog, den ich verwende (die tatsächliche GUI für den Dialog ist in der Layout-Ressource confirm_dialog.xml definiert):

%Vor%

Der Dialog wird mit den folgenden Zeilen erstellt

%Vor%

Die Schnittstellendefinition wird verwendet, um sicherzustellen, dass der Aufrufer (Fragment oder Aktivität) die Methoden zur Behandlung der vom Controller ausgelösten Ereignisse implementiert. Das heißt, ein Fragment oder eine Aktivität, die diesen Dialog aufruft, muss die angegebene Schnittstelle implementieren.
Vielleicht gibt es eine bessere Lösung, aber das ist die, die ich herausgefunden habe. Hoffe es hilft!

    
type-a1pha 24.08.2012 15:28
quelle
8

Hier ist ein Beispiel, um einen Abbrechen-Button zu betätigen. Klicken Sie auf einen Dialog der FragmentDialog-Klasse:

Ich habe android.support.v4.app.DialogFragment;

verwendet %Vor%     
Gal Rom 31.01.2014 08:08
quelle
3

Eine weitere Option ist, dass Ihre benutzerdefinierte DialogFragment -Klasse OnClickListener implementiert. Dann gibst du setOnClickListener für alle Ansichten, mit denen du klickst und klickst die Klicks in onClick .

%Vor%     
Suragch 16.11.2016 05:25
quelle
1

Es ist einfach in der Aktivität, aber in DialogFragment machen wir noch mehr Codes.

Hier, wie ich mein Problem gelöst habe, in der o DialogFragment-Klasse tun Sie Ihre Rutin findView

%Vor%

Implementiere onClick OnClickListener zu deiner Klasse

%Vor%

und machen Sie was Sie wollen in OnClick-Methode, indem Sie dies tun wir aktiviert die onClick-Ereignisse unserer Ansichten

%Vor%

Wenn Sie sich fragen, wie Sie Werte übergeben, folgen Sie diesen Schritten clike_here

    
Sam 10.07.2017 08:15
quelle
0

oder

%Vor%     
Peter 24.03.2018 04:05
quelle