вот метод, который я сделал, который отображает диалоговое окно: само всплывающее окно работает хорошо, но всплывает только тогда, когда я ухожу и возвращаюсь к mainActivity, поэтому я предполагаю, что оно работает только после метода onResume.(«rewardDialog» уже был инициирован в классе mainActivity, например:
Dialog rewardDialog;
- затем после onCreate-
rewardDialog.setContentView (R.layout.rewardpopup);)
public void showRewardPopup(View v) {
TextView close;
final TextView claim;
final TextView newReward;
final TextView done;
final TextView congrats;
final ImageView bronzeTrophy;
final ImageView silverTrophy;
final ImageView goldTrophy;
container.addEmoji(R.drawable.confetti);
//close
close = rewardDialog.findViewById(R.id.done);
close.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
rewardDialog.dismiss();
}
});
//hide to go to next screen
claim = rewardDialog.findViewById(R.id.claim);
newReward= rewardDialog.findViewById(R.id.newReward);
done = rewardDialog.findViewById(R.id.done);
congrats = rewardDialog.findViewById(R.id.congrats);
bronzeTrophy = rewardDialog.findViewById(R.id.bronzeTrophy);
silverTrophy = rewardDialog.findViewById(R.id.silverTrophy);
goldTrophy = rewardDialog.findViewById(R.id.goldTrophy);
//show popup
rewardDialog.getWindow().getAttributes().windowAnimations = R.style.popUpAnimation;
rewardDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
rewardDialog.show();
claim.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
claim.setVisibility(View.GONE);
newReward.setVisibility(View.GONE);
done.setVisibility(View.VISIBLE);
congrats.setVisibility(View.VISIBLE);
if(reachedBronze){
bronzeTrophy.setVisibility(View.VISIBLE);
showedBronzePopUp=true;
reachedBronze=false;
saveBronzeReward();
}
if(reachedSilver && counter>=50) {
silverTrophy.setVisibility(View.VISIBLE);
showedSilverPopUp=true;
reachedSilver=false;
saveSilverReward();
}
if(reachedGold && counter>=100) {
goldTrophy.setVisibility(View.VISIBLE);
showedGoldPopUp=true;
reachedGold=false;
saveGoldReward();
}
//start confetti
container.stopDropping();
container.setPer(10);
container.setDropDuration(2400);
container.setDuration(7200);
container.setDropFrequency(500);
container.startDropping();
}
});