我们目前正在构建一个包含 AdMob 奖励视频系统的应用程序。应用程序有一个 MainActivity,并且在其上构建了片段。每个片段都有一个按钮,每个片段都实现“RewardedVideoAdListener”。单击按钮时,将加载并显示奖励视频。现在的问题是,每个按钮都应该有不同类型的奖励。
两个片段看起来像这样;
public class FragmentShop extends Fragment implements RewardedVideoAdListener
{
private RewardedVideoAd rewardedVideoAd;
private Button rewardButton;
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
rewardButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(rewardedVideoAd.isLoaded()){
rewardedVideoAd.show();
rewardButton.setVisibility(View.INVISIBLE);
}
else {
Toast.makeText(view.getContext(),"Try again!",Toast.LENGTH_SHORT).show();
loadRewardedVideoAd();
}
}
});
}
private void loadRewardedVideoAd() {
rewardedVideoAd.loadAd("---", //there is our key
new AdRequest.Builder().build());
}
@Override
public void onRewarded(RewardItem rewardItem) {
//Some database actions.
loadRewardedVideoAd();
}
}
问题是,无论我们点击哪个按钮,只有 onRewarded() 函数在片段 2 中运行。所以我们如何构建一个结构,每个片段都运行自己的 onRewarded() 函数。我们应该首先使用 onRewardedVideoCompleted() 吗?