рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордзреНрдпрд╕реНрде рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛



рд╕рдмрд╕реЗ рд╕рд░рд▓ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ рдПрдХ рдЧрддрд┐рд╡рд┐рдзрд┐ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреА рд╢реНрд░реЗрдгреА рдФрд░ рдорд╛рдкрджрдВрдбреЛрдВ рд╕реЗ рдмрдВрдбрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдЗрдВрдЯреЗрдВрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рдЬрдм рддрдХ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХреБрдЫ рд╕реНрдХреНрд░реАрди рд╣реИрдВред рдХрдард┐рдирд╛рдЗрдпрд╛рдБ рддрдм рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВ рдЬрдм рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдореЗрдВ рд╕реНрдХреНрд░реАрди рдХреА рд╕рдВрдЦреНрдпрд╛ рджрд╕рд┐рдпреЛрдВ рдореЗрдВ рд╣реЛрдЧреАред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдмрд╣реБрдд рд╕реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд░рд▓ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред


рдкрд░рд┐рдЪрдп

рдмрд╛рддрдЪреАрдд рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдареЛрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдореЗрдВ рдХрдо рд╕реЗ рдХрдо 3 рд╕рдХреНрд░рд┐рдпрддрд╛рдПрдБ рд╣реИрдВ:



рд╕рдорд╕реНрдпрд╛

рдЬреЛ рдорд╛рдирдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдореБрдЦреНрдп рджреЛрд╖ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЗрдВрдЯреЗрдВрдЯ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рд╕реАрдзреЗ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛрдб рдореЗрдВ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣ рдХреЛрдб рджреЛрд╣рд░рд╛рд╡ рд╣реИред рдпрджрд┐ рд╣рдо рд╕рдХреНрд░рд┐рдпрдг рдХреЙрд▓ рдореЗрдВ рдПрдХ рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдЙрди рд╕рднреА рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ рдЬрд╣рд╛рдВ рдпрд╣ рд╕рдХреНрд░рд┐рдпрдг рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдкреВрд░реА рдЯреАрдо рдХреЛ рдХрд┐рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдкрдХреЛ рдПрдХ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рднреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛ред рдФрд░ рдЖрдИрдбреАрдИ рдХреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рджреЗрдВ, рд╡реИрд╕реЗ рднреА, рдпрд╣ рдлреЗрдВрдЧрд╢реБрдИ рдирд╣реАрдВ рд╣реИред

рдирд┐рд░реНрдгрдп

рдЗрд╕рд▓рд┐рдП, рдореИрдВ рдХреБрдЫ рдРрд╕реА рд╡рд╕реНрддреБ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдЬреЛ рдЖрдкрдХреЛ рдЕрдиреБрдорддрд┐ рджреЗ:

рдордзреНрдпрд╕реНрде рдкреИрдЯрд░реНрди рдЗрд╕ рд╡рд┐рд╡рд░рдг рдХреЛ рдлрд┐рдЯ рдХрд░рддрд╛ рд╣реИред рдЕрдм рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реИред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

рд╡рд░реНрдЧ рдЖрд░реЗрдЦ рд▓реЗрдЦ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкрд╣рд▓реЗ, рдкреНрд░рддреНрдпреЗрдХ рдХрдХреНрд╖рд╛ рдХреЛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╕рдордЭреЗрдВред

MyIntent рд╡рд░реНрдЧ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЙрд▓ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рд░рд╛рдВрдХ рд░рдЦрддрд╛ рд╣реИред

public class MyIntent extends Intent { public static final String EXTRA_CATEGORY_ID = "CategoryId"; public static final String EXTRA_DOCUMENT_ID = "DocumentId"; } 


рдПрдХреНрдЯреАрдореЗрдбрд┐рдпреЗрдЯрд░ рд╡рд░реНрдЧ рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рдирд┐рд░реНрдпрд╛рдд рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╡рд░реНрддрдорд╛рди рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдПрдХ рдирд┐рдЬреА рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдмрдЪрд╛рддрд╛ рд╣реИред рдЗрд╕ рд╡рд░реНрдЧ рдкрд░ рджреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рд╡рд┐рдзрд┐рдпрд╛рдВ рдХреЙрд▓ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рдмрд┐рдирд╛ рдпрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЗ рд╕рд╛рде рдХрд░рддреА рд╣реИрдВред рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╕реАрдзреЗ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдкреНрд░рд▓реЛрднрди рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

 public class ActivityMediator { private Activity mActivity; public ActivityMediator(Activity activity){ mActivity = activity; } protected void startActivity(Class<?> cls){ Intent intent = new Intent(mActivity, cls); mActivity.startActivity(intent); } protected void startActivity(Class<?> cls, Bundle extras){ Intent intent = new Intent(mActivity, cls); intent.replaceExtras(extras); mActivity.startActivity(intent); } } 


ActivMediator рд╡рд░реНрдЧ рд╕реЗ, рд╣рдореЗрдВ MyActivityMediator рд╡рд░реНрдЧ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред

 public class MyActivityMediator extends ActivityMediator { public MyActivityMediator(Activity activity){ super(activity); } public void showDocumentsList(){ startActivity(DocumentsListActivity.class); } public void showDocumentsList(int categoryId){ Bundle bundle = new Bundle(); bundle.putInt(MyIntent.EXTRA_CATEGORY_ID, categoryId); startActivity(DocumentsListActivity.class, bundle); } public void showDocumentViewer(UUID documentId){ Bundle bundle = new Bundle(); bundle.putString(MyIntent.EXTRA_DOCUMENT_ID, documentId.toString()); startActivity(DocumentViewActivity.class, bundle); } public void showDocumentEditor(){ startActivity(DocumentEditActivity.class); } public void showDocumentEditor(UUID documentId){ Bundle bundle = new Bundle(); bundle.putString(MyIntent.EXTRA_DOCUMENT_ID, documentId.toString()); startActivity(DocumentEditActivity.class, bundle); } } 


MyActivity рдХреНрд▓рд╛рд╕ рдЕрдореВрд░реНрдд рд╣реИ, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдЕрдиреНрдп рд╕рднреА рдЧрддрд┐рд╡рд┐рдзрд┐рдпрд╛рдБ рдЗрд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рд╣реИрдВред

 public abstract class MyActivity extends Activity { private KadActivityMediator mActivityMediator = new KadActivityMediator(this); public KadActivityMediator getActivityMediator(){ return mActivityMediator; } } 


рдЕрдм рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреА рдХрд┐рд╕реА рднреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рд╣рдо рдХрд┐рд╕реА рдЕрдиреНрдп рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рдирдпрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдкрд╛рджрдХ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 getActivityMediator().showDocumentEditor(); 


рдФрд░ рдЗрд╕рд▓рд┐рдП - рдЪрдпрдирд┐рдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рджреЗрдЦрдирд╛

 UUID documentId = getCurrentDocumentId(); getActivityMediator().showDocumentViewer(documentId); 


рдирд┐рд╖реНрдХрд░реНрд╖

рдЗрд╕ рд▓реЗрдЦ рдиреЗ рдПрдВрдбреНрд░реЙрдЗрдб рдУрдПрд╕ рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордзреНрдпрд╕реНрде рдкреИрдЯрд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ред рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╣реБрдП, рдЖрдк startActivityForResult рдпрд╛ рд╕рдХреНрд░рд┐рдпрдг рдХреЙрд▓ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреЙрд▓ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

Source: https://habr.com/ru/post/In131579/


All Articles