私のダイアログのフラグメントは以下のコードのようです。AndroidでDialogFragmentの結果を取得するにはどうすればよいですか?
public class PromoCodeDialogFragment extends BaseDialog implements View.OnClickListener {
private Test mBinding;
private String mHeader;
private String mVehicleNumber;
public static PromoCodeDialogFragment newInstance(String mHeader, String mVehicleNumber) {
PromoCodeDialogFragment dialog = new PromoCodeDialogFragment();
dialog.mHeader = mHeader;
dialog.mVehicleNumber = mVehicleNumber;
return dialog;
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);
getDialog().getWindow().setBackgroundDrawableResource(android.R.color.transparent);
mBinding = DataBindingUtil.inflate(inflater, R.layout.test, container, false);
mBinding.title.setText(mHeader);
setCancelable(true);
mBinding.submit.setOnClickListener(this);
mBinding.cancel.setOnClickListener(this);
return mBinding.getRoot();
}
@Override
public void onStart() {
super.onStart();
getDialog().getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.submit:
submit();
break;
case R.id.cancel:
dismiss();
break;
}
}
ここで、送信ボタンを押した場合、結果はMainFragmentクラスで取得する必要があります。
私はこの
@Override
public void onClick(View view, int position) {
SearchVehicleResponse.PromotionDetail promotionDetail = mPromoList.get(position);
if(hasActivity())
PromoCodeDialogFragment.newInstance(promotionDetail.promotionOffer, mBinding.vehicleId.getText().toString()).show(getActivity().getSupportFragmentManager(), "promo");
}
のように呼び出すDialogFragmentと呼ばれる今、私はPromoCodeDialogFragment内の送信ボタンをクリックすると、フラグメントのレスポンスを取得する必要があります。
使用**インターフェイス**フラグメントおよびダイアログ –