Wie lege ich eine admob-Anzeige im Einstellungsbildschirm für ein Live-Hintergrundbild ab?

7

Ich habe gesehen, das Mario Live Wallpaper Adob ​​Ads im Einstellungsbildschirm verwendet, aber ich konnte es nicht selbst tun. Wenn ich die adview wie bei einem normalen Layout in die settings.xml lege, bekomme ich eine Klassenausnahme.

Hier ist ein Screenshot des Mario Live Wallpaper um zu zeigen, was ich versuche zu tun.

    
James 23.10.2010, 11:16
quelle

6 Antworten

20

Hier ist eine einfachere Lösung: Erstellen Sie einen neuen Einstellungstyp, der eine einzelne Anzeige anzeigt. Sie können diesen Präferenztyp dann in die XML-Definition für Ihre Einstellungen aufnehmen, um eine oder mehrere Anzeigen anzuzeigen.

Benutzerdefinierte Vorzugsklasse:

%Vor%

XML-Layout für AdmobPreference:

%Vor%

Und dann fügst du einfach so etwas in deine Präferenzen xml definition:

ein %Vor%     
Brian 15.01.2011, 08:35
quelle
3

Ich habe es geschafft, dies selbst zu beantworten, also werde ich die Lösung hier posten, falls jemand anders dieselbe Frage hat.

Ich habe eine TabActivity sowie die Standard-Einstellungen-Aktivität hinzugefügt und dann die Einstellungen in einem Tab der TabActivity verschachtelt. Das bedeutet, ich habe ein normales Layout-XML für die TabActivity, in das ich eine Adview (oder eine andere Art von View) einfügen kann und ich habe immer noch den generierten Einstellungsbildschirm, der darin arbeitet.

Code für die TabActivity

%Vor%

Code für die tablayout.xml

%Vor%

Durch die Einstellung von android: visibility="invisible" und android: layout_height="1dp" auf dem TabWidget-Tag kann der Benutzer nicht erkennen, dass es sich um ein Tab

handelt     
James 26.10.2010 08:36
quelle
2

Danke, ich habe wirklich danach gesucht.

Nur eine Warnung: Wenn Sie diesen Ansatz für den Produktionscode verwenden und Sie proguard verwenden, müssen Sie proguard mitteilen, dass die Klasse AdmobPreference nicht codiert werden soll, andernfalls wird der Inflator FC.

Fügen Sie diese Zeile zu Ihrer proguard.cfg hinzu:

%Vor%     
Mr. D 26.01.2011 01:51
quelle
2

Für diejenigen, die sich fragen, wie man dies mit PreferenceFragment implementiert, ist hier eine Lösung, es ist nicht notwendig, eine benutzerdefinierte Preference zu erstellen:

Erstellen Sie zuerst ein neues Layout (hier namens settings.xml im Ordner für Layout-Ressourcen), das in PreferenceFragment :

aufgebläht wird %Vor%

Dann benutze dieses Layout in PreferenceFragment , lade es in der Methode onCreateView :

%Vor%

Vergessen Sie nicht, den folgenden Code für die neue Version von Admob mit Google Play-Diensten hinzuzufügen:

%Vor%     
Yoann Hercouet 18.03.2014 04:48
quelle
1

Sie können einen Einstellungsbildschirm auf zwei Arten implementieren:

  1. Verwenden Sie das Voreinstellungen-Framework, damit die XML-Voreinstellungsdatei das Layout der Voreinstellungen und alle ihre Funktionen automatisch erstellt
  2. Schreiben Sie die Aktivität selbst, d. h. beim Laden zeigen Sie die aktuellen Einstellungen an, wie sie angezeigt werden, speichern Sie sie unter Verwendung einer normalen Layout-XML-Datei, die Sie erstellen

Ich vermute, dass Sie das AdMob-Objekt zu einer XML-Datei hinzufügen, die es nicht verarbeiten kann, und nur Einstellungselemente behandeln kann. Bitte posten Sie Ihre XML-Datei und geben Sie an, welchen Casting-Fehler Sie sehen.

Wenn Sie die Kontrolle über den Inhalt des Einstellungsbildschirms haben wollen, dann implementieren Sie ihn selbst als normale Aktivität, und dann können Sie alles tun, was Sie wollen.

    
Ollie C 25.10.2010 19:20
quelle
0
%Vor%     
kreker 03.11.2016 21:30
quelle

Tags und Links