Ich gehe auf der Google-Seite für Android-Entwickler über Dialoge, insbesondere dieser Abschnitt . Anstatt jedoch die Nachricht von DialogFragment programmgesteuert zu erstellen, habe ich ein vordefiniertes Layout namens layout_newpayperiod.xml
mit den folgenden Elementen erstellt:
Wenn ich das DialogFragment aufruft, wird es normal angezeigt, wobei der Spinner die richtigen Werte hat. Ich habe die Einträge ausgefüllt und "OK" gedrückt, aber wenn ich versuche, die Werte aus dem Spinner- und zwei EditText-Feldern abzurufen, schließt die App mit einem NumberFormatException: Invalid double ""
. Ich habe das Gefühl, dass ich die Ansichten nicht richtig abrufe. Kann mir bitte jemand helfen? Danke!
}
In MainActivity.class die Callback-Methode:
%Vor%Versuchen Sie Folgendes:
%Vor%... usw. (Rufen Sie alle anderen Ansichten aus dem Dialog ab, indem Sie die dialogView auf die gleiche Weise abfragen.)
Ihr Inflationscode "bläst" eine brandneue Version dieser Ansicht auf. Sie möchten auf dasjenige zugreifen, das im Dialog erstellt wurde.
Ich denke, dass diese Zeile View transactionLayout = View.inflate(this, R.layout.layout_newpayperiod, null);
alles vermasselt. Vielleicht ist es nicht verwirrend, aber Sie erhalten die Adresse des frisch erstellten Layouts und weisen es dem transactionLayout
reference zu. Dann erhalten Sie Views von diesem Layout EditText paymentEt = (EditText) transactionLayout.findViewById(R.id.edittext_payment);
, die sicherlich nicht initialisiert sind. Es hat einen Wert leer Zeichenfolge Wert - & gt; "";
Ich denke, Sie sollten findViewById verwenden, um einen Verweis auf Ihre EditText zu erhalten, wie Sie es mit Ihren TextViews machen. Aber da du in deinem MainActivity
bist, welches Layout wahrscheinlich keine übergeordnete Ansicht deines R.layout.layout_newpayperiod
ist, musst du einen Weg finden, das richtig zu machen.
Sie haben Ihren DialogFragment
als Parameter in dieser onDialogPositiveClick
Callback-Methode. Sie können also View
und das von Ihnen gesuchte Layout erhalten, das die EditText-Dateien enthält
Es tut mir leid, diesen Beitrag so oft bearbeitet zu haben.
Tags und Links android android-dialogfragment