¿Hay alguna manera de agregar un anuncio AdMob a una actividad de preferencia? ¿Cómo?Anuncio Android Admob en PreferenceActivity
Respuesta
Lo que también puede hacer es crear una preferencia personalizada que se pueda agregar fácilmente a cualquier pantalla de preferencias.
Agregue un archivo de diseño llamado ad_layout.xml a su carpeta res/layout que AdMob completará más adelante.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" android:orientation="vertical">
</LinearLayout>
Crear una clase llamada AdPreference así:
package com.example.adpreference;
import com.google.ads.AdRequest;
import com.google.ads.AdSize;
import com.google.ads.AdView;
import android.app.Activity;
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);}
@Override
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>");
((LinearLayout)view).addView(adView);
// Initiate a generic request to load it with an ad
AdRequest request = new AdRequest();
adView.loadAd(request);
return view;
}
}
Ahora en el archivo XML preferencia sólo se puede añadir añadir cualquier posición que desee (en la parte superior o entre cualquier otra preferencia).
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
...
<com.example.adpreference.AdPreference android:layout="@layout/ad_layout"/>
...
</PreferenceScreen>
Sí, un PreferenceActivity
es sólo una subclase de ListActivity
y, como con ListActivity
, puede especificar su propio diseño personalizado con tal de que contiene una ListView
con un ID de android.R.id.list
. Así que crea cualquier archivo de diseño XML que necesites que contenga un ListView
y un AdView
y usa ese diseño para el PreferenceActivity
.
impresionante tipo !! Gracias – Sourabh
La respuesta de Dan Dyer es correcta. Me gustaría elaborar un poco, solo para aclarar con el ejemplo. Puede usar un diseño como este (llamado config.xml en res/layout).
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:myapp="http://schemas.android.com/apk/res/com.xxxx" android:layout_height="fill_parent"
android:layout_width="fill_parent">
<ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
<com.admob.android.ads.AdView
android:id="@+id/ad"
android:layout_alignParentBottom="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
myapp:backgroundColor="#000000"
myapp:primaryTextColor="#FFFFFF"
myapp:secondaryTextColor="#CCCCCC"/>
</RelativeLayout>
En su actividad que se extiende PreferenceActivity se escribe algo como esto en el método onCreate;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.config);
}
impresionante Dude Thanx – Sourabh
ViewGroup viewGroup = (ViewGroup) findViewById(android.R.id.list).getParent().getParent().getParent();
viewGroup.addView(new AdView(...));
Debe agregar más información a su respuesta. No tengo idea de dónde debería colocar esto, qué hace esto, etc. –
@SuperThomasLab, debe colocarlo en su actividad de preferencia. En onCreate, por ejemplo. Pensé que era obvio. ¿Qué hace esto? Bueno, lee la documentación. – kreker
Hay algunos cambios en P.Melch respuesta en clase Adpreference es como abajo (porque no su trabajo con la última biblioteca de anuncios de Google Play):
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);}
@Override
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();
AdView adView = new AdView(getContext());
adView.setAdUnitId("<your ad id>");
adView.setAdSize(AdSize.BANNER);
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
((LinearLayout)view).addView(adView);
return view;
}
}
- 1. Admob - Ningún anuncio para mostrar
- 2. Cómo crear un anuncio intersticial para Android?
- 3. Problema de orientación de AdMob en Android
- 4. Android, AdMob: la actualización de anuncios de AdMob destruye la velocidad de fotogramas
- 5. ¿Cómo uso AdMob en el sistema operativo Android?
- 6. Android AdMob y Maven
- 7. Cómo implementar AdMob AdView en la aplicación de Android
- 8. Anuncios AdMob que no se muestran - Android
- 9. Anuncio no se pudo cargar en android
- 10. DialogFragment en PreferenceActivity
- 11. Admob, fillrate realmente malo
- 12. ClassCastException en PreferenceActivity
- 13. Mostrando anuncio en AndEngine
- 14. Cambiar el color del divisor en Android PreferenceActivity
- 15. PreferenceActivity funciona correctamente en Android 2.1, pero no 4.1 (relleno)
- 16. ¿Debo mantener en secreto mi Id. De editor de AdMob?
- 17. ¿Cómo hacer que AdView "ocupe" espacio incluso mientras solicita un anuncio? (Android)
- 18. anuncios de AdMob no presentarse
- 19. ¿Por qué AdMob devuelve NO FILL
- 20. Cualquier tutorial admob que funcione para Phonegap en Android
- 21. No ejecute AdMob en el emulador (android 2.2)
- 22. Admob en actividades múltiples?
- 23. AdMob no mostrar anuncios en el simulador de iOS
- 24. PreferenceActivity Resumen actualización
- 25. Anuncio publicitario que no aparece en el emulador o en el teléfono
- 26. incremento del anuncio
- 27. android: cómo establecer un diseño personalizado para PreferenceActivity en Android 3.0?
- 28. ¿Cómo ocultar/desactivar la vista previa de admob?
- 29. Actualizar Preferencias en PreferenceActivity en Reanudar
- 30. Cómo implementar AdMob en Phonegap
esto es realmente genial ... me ayudó con un problema realmente grande que estaba teniendo. – dell116
buen trabajo, me hace feliz –
y también tenemos que destruir adView !? –