Чтобы строго ответить на вопрос: используйте invalidate ():
public void invalidate () Начиная с: Уровень API 1
Опровергнуть весь взгляд. Если представление является видимым, onDraw (Canvas) будет вызван в какой-то момент в будущем. Это должно быть вызвано из потока пользовательского интерфейса. Для вызова из не-пользовательского интерфейса вызовите postInvalidate ().
ViewGroup vg = findViewById (R.id.mainLayout);
vg.invalidate();
Теперь, когда действие возобновляется, он заставляет каждый вид рисовать сам. Не нужно вызывать invalidate (). Чтобы применить тему, убедитесь, что вы делаете это до того, как будет нарисовано любое представление, т.е.setContentView(R.layout.mainscreen);
public void setTheme (int остаток) С: API Уровень 1
Установите базовую тему для этого контекста. Обратите внимание, что это следует вызывать до того, как будут созданы какие-либо представления в контексте (например, перед вызовом setContentView (View) или inflate (int, ViewGroup)).
Ссылка на документацию по API находится здесь: http://developer.android.com/reference/android/view/ContextThemeWrapper.html#setTheme%28int%29
Поскольку метод onDraw () работает с уже созданными экземплярами Views, setTheme работать не будет. У меня нет опыта работы с темами, но я могу подумать о двух альтернативных вариантах:
- вместо этого вызовите setTheme в onCreate (), или
- повторить setContentView (R.layout.mainscreen); заставить восстановить все макет.