Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
public class Director {
public static void goHome(Activity activity) {
activity.startActivity(new Intent(activity, MainActivity.class));
}
public static void goWordList(Activity activity) {
activity.startActivity(new Intent(activity, WordListActivity.class));
}
public static void goTrainList(Activity activity, int dicId) {
Intent intent = new Intent(activity, TrainListActivity.class);
intent.putExtra(TrainListActivity.TrainDicId, dicId);
activity.startActivity(intent);
}
}public class ContextMediator
{
// -- construction
public ContextMediator(Context context) {
mContext = context;
}
// -- properties
protected Context getContext() {
return mContext;
}
// -- functions
protected void startActivity(Class<?> cls)
{
Intent intent = new Intent(mContext, cls);
mContext.startActivity(intent);
}
protected void startActivity(Class<?> cls, Bundle extras)
{
Intent intent = new Intent(mContext, cls);
intent.replaceExtras(extras);
mContext.startActivity(intent);
}
// -- variables
private final Context mContext;
}
public class ActivityMediator extends ContextMediator
{
// -- construction
public ActivityMediator(Activity activity) {
super(activity);
}
// -- properties
protected Activity getActivity() {
return (Activity) getContext();
}
// -- functions
protected void startActivityForResult(Class<?> cls, int requestCode)
{
Intent intent = new Intent(getActivity(), cls);
getActivity().startActivityForResult(intent, requestCode);
}
}
public abstract class MyActivity extends Activity {
private ActivityMediator mActivityMediator = new ActivityMediator(this);
public ActivityMediator getActivityMediator(){
return mActivityMediator;
}
}
public abstract class MyService extends Service {
private ContextMediator mContextMediator = new ContextMediator(this);
public ContextMediator getActivityMediator() {
return mContextMediator;
}
}
Использование паттерна mediator для переключения между activity