私は、グリッドビューでの製品の表示とユーザーが注文に追加する製品(ListFragment)を表示する2つのフラグメントを持つアクティビティを持っています。ユーザーがグリッドビューで商品をクリックすると、必要な商品の数量を尋ねるダイアログ(DialogFragment)が表示されます。次に、ユーザーがダイアログでAcceptをクリックすると、ListFragmentに商品が表示されます。androidのフラグメント/ダイアログ間の通信
一方で、ダイアログのタイトルなどの名前を表示するには、オブジェクト製品をダイアログに渡す必要があります。だから私がしたことは、このようにそれを渡すことでした:
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();
}
}
私は間違っていると私は正しいと思います。しかし、正のボタンのonClickイベントでは、ダイアログで導入された数量を取得し、それを他のフラグメント(ListFragment)に渡す必要があります。次にリストに即座に表示されるはずです。
どうすればいいですか?予め
おかげ
循環的な継承が発生しますか? –
この回答はフラグメント(DialogFragment)とアクティビティ(メイン)の間の通信についてもっと詳しく説明していると強く感じています このスレッドは似たような質問でチェックしてください:https://stackoverflow.com/q/18561119/3987745 –