Для тех, кто интересуется, как реализовать это с PreferenceFragment
, вот решение, нет необходимости создавать пользовательский Preference
:
Сначала создайте новый макет (здесь с именем settings.xmlв папке ресурсов макета), которая будет накачана в PreferenceFragment
:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent">
<com.google.android.gms.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/adview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
ads:adUnitId="XXXXX"
ads:adSize="SMART_BANNER"
android:layout_alignParentTop="true" />
<ListView android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/adview" />
</RelativeLayout>
Затем используйте этот макет в PreferenceFragment
, загрузите его в методе onCreateView
:
private AdView adView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.settings, null);
adView = (AdView)v.findViewById(R.id.adview);
//** Adview */
if(Tools.isNetworkConnected(getActivity())){
adView.setVisibility(View.VISIBLE);
}
else{
adView.setVisibility(View.GONE);
}
//Create ad banner request
AdRequest adBannerRequest = new AdRequest.Builder()
// .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
// .addTestDevice("XXXXX")
.build();
// Begin loading banner
adView.loadAd(adBannerRequest);
return v;
}
Не забудьте добавить следующий код для новой версии Admob с помощью сервисов Google Play:
@Override
public void onResume() {
super.onResume();
if(adView != null){
adView.resume();
}
}
@Override
public void onPause() {
if(adView != null){
adView.pause();
}
super.onPause();
}
@Override
public void onDestroy() {
if(adView != null){
adView.destroy();
}
super.onDestroy();
}