lacas lacas - 3 years ago 87
Android Question

Android Admob advert in PreferenceActivity

Is there a way to add an admob advert to a PreferenceActivity? How to?

Answer Source

What you can also do is to create a custom Preference that can be easily added to any preferences screen.

Add a layout file called ad_layout.xml to your res/layout folder that will be filled later by AdMob.

<?xml version="1.0" encoding="utf-8"?>
    android:layout_height="match_parent" android:orientation="vertical">  

Create a class called AdPreference like that:

package com.example.adpreference;


import android.content.Context;
import android.preference.Preference;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;

public class AdPreference extends Preference {

    public AdPreference(Context context, AttributeSet attrs, int defStyle) {super    (context, attrs, defStyle);}
    public AdPreference(Context context, AttributeSet attrs) {super(context, attrs);}
    public AdPreference(Context context) {super(context);}

    protected View onCreateView(ViewGroup parent) {
        // this will create the linear layout defined in ads_layout.xml
        View view = super.onCreateView(parent);

        // the context is a PreferenceActivity
        Activity activity = (Activity)getContext();

        // Create the adView
        AdView adView = new AdView(activity, AdSize.BANNER, "<your add id>");


        // Initiate a generic request to load it with an ad
        AdRequest request = new AdRequest();

        return view;    

Now in the preference xml file you can just add add any position you like (at the top or in between any other preferences ).

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="">


    <com.example.adpreference.AdPreference android:layout="@layout/ad_layout"/>

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download