Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
class MyActivity {
public void onCreate() {
super.onCreate();
onCreate(this);
}
public static void onCreate(Activity activity) {
// всякие хорошие вещи...
}
}
package com.mera.detachedthemeslib;
import android.app.Activity;
import android.content.res.Resources;
import android.os.Bundle;
public abstract class BaseActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
onCreate(this);
super.onCreate(savedInstanceState);
}
@Override
public Resources getResources() {
return getResources(this, super.getResources());
}
@Override
public Resources.Theme getTheme() {
return getTheme(this, super.getTheme());
}
public static void onCreate(Activity activity) {
ActivityManager.setThemeForActivity(activity);
}
public static Resources getResources(Activity activity, Resources superResources) {
return ActivityManager.getResourcesForActivity(activity, superResources);
}
public static Resources.Theme getTheme(Activity activity, Resources.Theme superTheme) {
return ActivityManager.getThemeForActivity(activity, superTheme);
}
}
interface ThemeHelper {
void onCreate(@NotNull Activity activity);
@NotNull
Resources getResources(@NotNull Activity activity);
}
class MyActivity extends RoboSherlockActivity {
@NotNull
private final ThemeHelper themeHelper = new ThemeHelper();
@Override
void onCreate(Bundle savedInstanceState) {
themeHelper.onCreate(this);
super.onCreate(savedInstanceState);
// ...
}
}
Как отделить тему от приложения