Soruyu kesin olarak cevaplamak için: invalidate () kullanın:
public void invalidate () Başlangıç tarihi: API Düzey 1
Tüm görünümü geçersiz kılın. Görünüm görünürse, gelecekte bir noktada onDraw (Tuval) çağrılır. Bu bir UI iş parçacığından çağrılmalıdır. Kullanıcı arabirimi olmayan bir iş parçacığından aramak için postInvalidate () öğesini çağırın.
ViewGroup vg = findViewById (R.id.mainLayout);
vg.invalidate();
Etkinlik yeniden başladığında, her Görünüm'ün kendisini çizmesini sağlar. Invalidate () çağrısına gerek yoktur. Temayı uygulamak için, herhangi bir Görünüm çizilmeden önce, yani öncesetContentView(R.layout.mainscreen);
public void setTheme (int resid) Tarih: API Seviye 1
Bu bağlam için temel temayı ayarlayın. Bu görünüm Bağlamda herhangi bir görünüm başlatılmadan önce çağrılmalıdır (örneğin, setContentView (View) veya inflate (int, ViewGroup) çağrılmadan önce).
API doküman referansı burada: http://developer.android.com/reference/android/view/ContextThemeWrapper.html#setTheme%28int%29
OnDraw () yöntemi zaten örneklenmiş Görünümler üzerinde çalıştığından, setTheme çalışmaz. Temalar hakkında hiçbir deneyimim yok, ancak düşünebileceğim iki alternatif seçenek:
- bunun yerine onCreate () içindeki setTheme öğesini çağırın veya
- setContentView (R.layout.mainscreen) öğesini yeniden yapın; tüm yerleşimi eski haline döndürmeye zorlamak.