Ich habe eine Aktivität mit zwei Fragmenten: eine für das Anzeigen von Produkten in einer Gridview und die andere, um die Produkte anzuzeigen, die der Benutzer der Bestellung hinzufügt (ListFragment). Wenn der Benutzer auf ein Produkt in der Rasteransicht klickt, muss ich einen Dialog (DialogFragment) anzeigen, in dem ich die Menge des gewünschten Produkts erfrage. Wenn der Benutzer dann im Dialogfeld auf "Akzeptieren" klickt, möchte ich, dass das Produkt in ListFragment angezeigt wird.Kommunikation zwischen Fragmenten/Dialogen in Android
Zum einen muss ich das Objektprodukt an den Dialog übergeben, um seinen Namen als Titel des Dialogs anzuzeigen (zum Beispiel). Also, was ich tat, war es auf diese Weise weitergeben müssen:
public static class ProductDialog extends DialogFragment {
static ProductDialog newInstance(ProductVO product) {
ProductDialog f = new ProductDialog();
Bundle args = new Bundle();
args.putSerializable("product", product);
f.setArguments(args);
return f;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
ProductVO product = (ProductVO) getArguments().getSerializable("product");
return new AlertDialog.Builder(getActivity())
.setIcon(R.drawable.ic_dialog_add)
.setTitle(R.string.add_product)
...
.setPositiveButton(R.string.accept,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
}
)
.setNegativeButton(R.string.cancel,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
}
)
.create();
}
}
Ich denke, dass es okey ist, korrigieren Sie mich, wenn ich falsch liege. Aber dann muss ich im OnClick-Ereignis der positiven Schaltfläche die im Dialog eingegebene Menge abrufen und sie dann an das andere Fragment (das ListFragment) übergeben, und dann sollte es sofort in der Liste angezeigt werden.
Wie könnte ich das tun? eine Schnittstelle, und dann von der Aktivität auf das Fragment
Vielen Dank im Voraus
Verursacht zyklische Vererbung? –
Ich glaube stark, dass diese Antwort mehr über die Kommunikation zwischen einem Fragment '(DialogFragment)' und einer Aktivität '(Main)' erklärt. Bitte überprüfen Sie diesen Thread mit einer ähnlichen Frage: https://stackoverflow.com/q/18561119/3987745 –