W szczególnych przypadkach muszę usunąć motyw okna dialogowego z mojej aktywności, ale wydaje się, że nie działa. Oto przykład
Pierwsza czynność:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startActivity(new Intent(MainActivity.this, SecondActivity.class));
}
Druga czynność:
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setTheme(android.R.style.Theme);
setContentView(R.layout.activity_second);
}
Manifest wyciąg:
<activity android:name="SecondActivity" android:theme="@android:style/Theme.Dialog"></activity>
Kiedy uruchamiam, nadal jest to okno dialogowe.
API10
Dzięki.
Odpowiedź użytkownika1462299 działa świetnie, ale jeśli dołączysz fragmenty , użyją oryginalnego motywu działań. Aby zastosować motyw również do wszystkich fragmentów, możesz zamiast tego nadpisać metodę getTheme () Context:
Nie ma już potrzeby wywoływania setTheme () w metodzie onCreate (). W ten sposób nadpisujesz każde żądanie uzyskania aktualnego motywu w tym kontekście.
źródło
Wiem, że jestem późno, ale chciałbym, aby umieścić tu rozwiązanie:
Sprawdź pełny kod źródłowy tutaj .
To jest kod, którego użyłem podczas zmiany motywu za pomocą preferencji.
Pamiętaj, że musisz umieścić kod przed setcontentview ..
SZCZĘŚLIWEGO KODOWANIA!
źródło
Ten działa dobrze dla mnie:
theme.applyStyle(R.style.AppTheme, true)
Stosowanie:
źródło