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.
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%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
handeltDanke, 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% 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
:
Dann benutze dieses Layout in PreferenceFragment
, lade es in der Methode onCreateView
:
Vergessen Sie nicht, den folgenden Code für die neue Version von Admob mit Google Play-Diensten hinzuzufügen:
%Vor%Sie können einen Einstellungsbildschirm auf zwei Arten implementieren:
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.