我有一个自定义RecyclerView
,其中有许多Intent
会转到Activity
中的新Fragment
。当用户点击RecyclerView
上的项目时,我想在新活动出现之前显示插页式广告。
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.MyHolder> {
private Context mContext;
private List<Recipes> mData;
private InterstitialAd mInterstitialdAd;
RecyclerViewAdapter(Context mContext, List<Recipes> mData){
this.mContext = mContext;
this.mData = mData;
}
@NonNull
@Override
public MyHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view ;
LayoutInflater layoutInflater = LayoutInflater.from(mContext);
view = layoutInflater.inflate(R.layout.cardview_recipe,viewGroup,false);
return new MyHolder(view);
}
@Override
public void onBindViewHolder(@NonNull final MyHolder myHolder, final int i) {
myHolder.recipeTitle.setText(mData.get(i).getRecipeName());
myHolder.img_recipe_thumbnail.setImageResource(mData.get(i).getThumbnail());
myHolder.cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mContext,RecipeActivity.class);
intent.putExtra("RecipeName",mData.get(i).getRecipeName());
intent.putExtra("RecipeIngredients",mData.get(i).getRecipeIngredients());
intent.putExtra("RecipeMethodTitle",mData.get(i).getRecipeMethodTitle());
intent.putExtra("Recipe",mData.get(i).getRecipe());
intent.putExtra("Thumbnail",mData.get(i).getThumbnail());
mContext.startActivity(intent);
}
});
}
@Override
public int getItemCount() {
return mData.size();
}
static class MyHolder extends RecyclerView.ViewHolder {
TextView recipeTitle;
CardView cardView;
ImageView img_recipe_thumbnail;
MyHolder(@NonNull View itemView) {
super(itemView);
recipeTitle = itemView.findViewById(R.id.recipe_text);
img_recipe_thumbnail = itemView.findViewById(R.id.recipe_img_id);
cardView = itemView.findViewById(R.id.cardview_id);
}
}
}
答案 0 :(得分:0)
首先,您需要设置gradle和XML。有关设置依赖项的信息,请参见Android official documentation。
然后,创建广告请求:
// Create ad request
adRequest = new AdRequest.Builder().build();
// Attempt loading ad for interstitial
interstitial.loadAd(adRequest);
// Create and set AdListener for interstitial
interstitial.setAdListener(new AdListener() {
// Listen for when user closes ad
public void onAdClosed() {
// When user closes ad go to your activity
Intent intent = new Intent(mContext,RecipeActivity.class);
intent.putExtra("RecipeName",mData.get(i).getRecipeName());
intent.putExtra("RecipeIngredients",mData.get(i).getRecipeIngredients());
intent.putExtra("RecipeMethodTitle",mData.get(i).getRecipeMethodTitle());
intent.putExtra("Recipe",mData.get(i).getRecipe());
intent.putExtra("Thumbnail",mData.get(i).getThumbnail());
mContext.startActivity(intent);
}
});
然后点击您的卡片视图:
// Create and set OnClickListener for cardview
myHolder.cardView.setOnClickListener(new OnClickListener() {
// Listen for when user presses cardview
public void onClick(View v) {
// If a interstitial is ready, show it
if(interstitial.isLoaded()) {
interstitial.show();
}
// Otherwise send fail message
else {
Toast.makeText(this, "Ad failed.", Toast.LENGTH_SHORT).show();
}
}
});
希望有帮助!