java - 如何在android studio的片段中添加admob广告?
问题描述
我很想将 admob 广告添加到我的应用程序的片段中。我已经在 XML 文件中添加了广告。但是,我在 java 部分遇到了麻烦。你能把java代码分享给rootview吗?我检查了其他文章,但我很困惑。
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);
}
推荐阅读
- xml - 通过匹配其他组的节点来查找组中的节点
- kubernetes - 使用 Tectonic 启用 Kubernetes 功能门
- c# - c# Winforms:以不同的形式导出到datagridview时,数据跳过了一行
- javascript - 纯 js 数组在元素交替的地方合并
- php - 反向关系如何在 Laravel Eloquent 中工作?
- html - 将较大 svg 内的矩形水平对齐到右侧
- python - DataLoader 问题:RNN 模块权重不是单个连续内存块的一部分
- vb.net - 收到一条消息,上面写着“Option strict on disallows from 'String' to 'Integer' 的隐式转换。”
- google-maps - BQ:如何 UNNEST 进入新表
- azure - 应用洞察:SQL 依赖结果代码“-2”