在我的应用程序中,我有两个 activities
.
活动 A和活动B。
进入活动 B我有dialog
,当用户单击其中一个按钮时dialog
,我想在活动 A
中调用方法,
我在下面编写代码,但是当单击dialog
按钮时不调用活动 A中的方法。
活动 B 对话框代码:
vipDialog = new Dialog(context);
vipDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
vipDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
vipDialog.setContentView(R.layout.base_dialog);
//Set cancellable
vipDialog.setCancelable(false);
//Init views
baseDialog_logo = vipDialog.findViewById(R.id.baseDialog_logo);
baseDialog_title = vipDialog.findViewById(R.id.baseDialog_title);
baseDialog_desc = vipDialog.findViewById(R.id.baseDialog_desc);
baseDialog_negativeBtn = vipDialog.findViewById(R.id.baseDialog_negativeBtn);
baseDialog_positiveBtn = vipDialog.findViewById(R.id.baseDialog_positiveBtn);
baseDialog_buttonsLay = vipDialog.findViewById(R.id.baseDialog_buttonsLay);
baseDialog_cancelBtn = vipDialog.findViewById(R.id.baseDialog_cancelBtn);
//Set weight
baseDialog_buttonsLay.setWeightSum(2);
baseDialog_cancelBtn.setVisibility(View.GONE);
//Set logo
baseDialog_logo.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.dialog_vip_logo));
//Set text
baseDialog_title.setText(getString(R.string.trialTitle));
baseDialog_desc.setText(getString(R.string.trialDesc));
baseDialog_positiveBtn.setText(getString(R.string.buyVip));
baseDialog_negativeBtn.setText(getString(R.string.detailSeeAdv));
//Set click listeners
baseDialog_positiveBtn.setOnClickListener(v -> {
EventBus.getDefault().post(new BuyPremiumUserEvent(true));
finish();
});
baseDialog_negativeBtn.setOnClickListener(v -> {
loadFullPageAdv(getViewContext(), BuildConfig.fullPageDetailApiKey, TapsellAdRequestOptions.CACHE_TYPE_STREAMED);
});
vipDialog.show();
活动 A 代码:
@Override
protected void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
protected void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onBuyPremium(final BuyPremiumUserEvent event) {
clickedOnBuyPremium = event.isClickOnBuyPremium();
initBazaarUserRegistered();
Log.e("paymentLog", "Clicked");
}
单击对话框时,不显示我Log.e("paymentLog", "Clicked");
进入日志。
我该如何解决?