In bestimmten Fällen muss ich das Dialogthema aus meiner Aktivität entfernen, aber es scheint nicht zu funktionieren. Hier ist ein Beispiel
Erste Aktivität:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startActivity(new Intent(MainActivity.this, SecondActivity.class));
}
Zweite Aktivität:
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setTheme(android.R.style.Theme);
setContentView(R.layout.activity_second);
}
Manifestierter Auszug:
<activity android:name="SecondActivity" android:theme="@android:style/Theme.Dialog"></activity>
Wenn ich starte, ist es immer noch ein Dialog-Thema.
API10
Vielen Dank.
Die Antwort von user1462299 funktioniert hervorragend, aber wenn Sie Fragmente einfügen , wird das ursprüngliche Aktivitätsthema verwendet. Um das Thema auch auf alle Fragmente anzuwenden, können Sie stattdessen die Methode getTheme () des Kontexts überschreiben :
Sie müssen setTheme () in der onCreate () -Methode nicht mehr aufrufen. Auf diese Weise überschreiben Sie jede Anforderung, das aktuelle Thema in diesem Kontext abzurufen.
quelle
Ich weiß, dass ich zu spät komme, aber ich möchte hier eine Lösung veröffentlichen:
Überprüfen Sie den vollständigen Quellcode hier .
Dies ist der Code, den ich beim Ändern des Themas mithilfe von Einstellungen verwendet habe.
Bitte beachten Sie, dass Sie den Code vor setcontentview eingeben müssen.
GLÜCKLICHE CODIERUNG!
quelle
Dieser funktioniert gut für mich:
theme.applyStyle(R.style.AppTheme, true)
Verwendung:
quelle