如何在Android Studio的片段中添加admob广告?

问题描述

我想在我的应用程序的片段中添加admob广告。我已经在XML文件添加了广告。我在java部分遇到了麻烦。您能否与rootview共享Java代码?我检查了其他文章,但感到困惑。

HomeFragment.java

private AdView mAdView;
@Override
public View onCreateView(@NonNull LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {
    View rootview = inflater.inflate(R.layout.fragment_home,container,false);
    ButterKnife.bind(this,rootview);
    mFragmentPositionMap = CommonCodeUtils.getInstance().fillNavigationItemsMap(true);

    mAdView = findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder().build();
    mAdView.loadAd(adRequest);    

    imagesToPdf.setonClickListener(this);
    qrbarcodetoPdf.setonClickListener(this);
    textToPdf.setonClickListener(this);
    viewFiles.setonClickListener(this);
    viewHistory.setonClickListener(this);
    splitPdf.setonClickListener(this);
    mergePdf.setonClickListener(this);
    compresspdf.setonClickListener(this);
    removePages.setonClickListener(this);
    rearrangePages.setonClickListener(this);
    extractimages.setonClickListener(this);
    mPdfToImages.setonClickListener(this);
    addPassword.setonClickListener(this);
    removePassword.setonClickListener(this);
    rotatePdf.setonClickListener(this);
    addWatermark.setonClickListener(this);
    addImages.setonClickListener(this);
    removeDuplicatePages.setonClickListener(this);
    invertPdf.setonClickListener(this);
    zipToPdf.setonClickListener(this);
    excelToPdf.setonClickListener(this);
    extractText.setonClickListener(this);
    addText.setonClickListener(this);

    mAdapter =  new Recentlistadapter(this);
    recentList.setAdapter(mAdapter);
    return rootview;
    }

将此添加到fragment_home.xml

<com.google.android.gms.ads.AdView
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:id="@+id/adView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_alignParentBottom="true"
    ads:adSize="BANNER"
    ads:adUnitId="ca-app-pub-3940256099942544/6300978111">
</com.google.android.gms.ads.AdView>

但是,它会返回带有findViewById部分的错误。而且我也想知道应该在清单文件添加什么内容

解决方法

您必须在Activity上运行它:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    MobileAds.initialize(this,new OnInitializationCompleteListener() {
        @Override
        public void onInitializationComplete(InitializationStatus initializationStatus) {}
    });
}

,并将其放在您的Fragment上:

@Override
public void onViewCreated(@NonNull View view,@Nullable Bundle savedInstanceState) {
    super.onViewCreated(view,savedInstanceState);
    AdView adView = findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder().build();
    adView.loadAd(adRequest);
}