рдПрдорд╡реАрдкреА рдФрд░ рдбреИрдЧрд░ 2 - рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрдВрдХрд╛рд▓ - рднрд╛рдЧ 1

рдпрд╣ рд▓реЗрдЦ рдПрдВрдбреНрд░реЙрдЗрдб рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд╢реБрд░реБрдЖрддреА рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рд╣реИ рдФрд░ рдиреНрдпреВрдирддрдо рдЖрд╡рд╢реНрдпрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдРрд╕рд╛ рд╣реБрдЖ рдХрд┐ рдореИрдВрдиреЗ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╢реБрд░реВ рдХреА - рдПрдХ рдорд╣реАрдиреЗ рдХреЗ рдмрд╛рдж рдмрд┐рдирд╛ рдХрдВрдкрдиреА рдореЗрдВ рдЬрд╣рд╛рдВ рдореИрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ, рдореБрдЭреЗ рдЯрд╛рдЯрд╛ рдХрдВрд╕рд▓реНрдЯреЗрдВрд╕реА рд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдХреЗ рдЙрд░реБрдЧреНрд╡рдпрди рдХрд╛рд░реНрдпрд╛рд▓рдп рдореЗрдВ рдореЛрдмрд╛рдЗрд▓ рд╡рд┐рдХрд╛рд╕ рдЯреАрдо рдХреЛ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рдерд╛ред рдЯреАрдо рд▓реАрдб рдХреЗ рд╕рд╛рде рдмрд╛рдд рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ рдПрдХ рд╕реНрдЯреИрдХ рджрд┐рдпрд╛ рдЧрдпрд╛, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдореБрдЭреЗ рдкрд╣рд▓реЗ рдЦреБрдж рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░рдирд╛ рдерд╛, рдФрд░ рдлрд┐рд░ рдорд╛рд╕реНрдЯрд░ред рдЕрдиреНрдп рдмрд╛рддреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд╛рд╕реНрддреБ рдкреИрдЯрд░реНрди рдХреЗ рд░реВрдк рдореЗрдВ DI рдФрд░ MVP рдХреЗ рд▓рд┐рдП рдбреИрдЧрд░ 2 рдлреНрд░реЗрдорд╡рд░реНрдХ рдерд╛ред рдФрд░ рдХреЛрдЯрд▓рд┐рдиред рд▓реЗрдХрд┐рди рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдФрд░ рдмрд╛рд░ :)

рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕рдбреАрдХреЗ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдкреВрд░реЗ рд╕реНрдЯреИрдХ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдПрд╕рдбреАрдХреЗ рдХреЗ рд╕рд╛рде рдЦреБрдж рдХреЛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереА - рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЗрд╕ рдкрд░ рдкрд░реНрдпрд╛рдкреНрдд рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рд╣реИ, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдФрд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реНрдЯрд╛рд░реНрдЯрд░реЙрдЗрдб рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдорджрдж рдорд┐рд▓реА) рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдереЛрдбрд╝реА рд╕реА рднреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреИрдЧрд░ 2 рдФрд░ рдПрдорд╡реА рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрдард┐рдирд╛рдЗрдпрд╛рдВ рдереАрдВред рдкрд╣рд▓реЗ рдХрд╛ рдкреНрд░рд▓реЗрдЦрди рдФрд░, рдЙрд╕ рд╕рдордп, рджреВрд╕рд░реЗ рдХреА рдЕрдкрд░реНрдпрд╛рдкреНрдд рд╕рдордЭред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдореЛрдмрд╛рдЗрд▓ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рд╕реЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреВрдЯ / рдПрдорд╡реАрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрд╛рд╡рд╛ рдореЗрдВ рдорд╛рдЗрдХреНрд░реЛрд╕реЗрд░реНрд╡рд┐рд╕ рдХрд┐рдпрд╛ рдерд╛ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдЗрдВрдЬреЗрдХреНрд╢рди рдХреНрдпрд╛ рд╣реИ рдФрд░ рдПрдорд╡реАрд╕реА рдХреНрдпрд╛ рд╣реИ, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдерд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ "рд╕реНрдкреНрд░рд┐рдВрдЧ рдПрдорд╡реАрд╕реА" рдирд╛рдо рднреА рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреИрдЯрд░реНрди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдореЗрдВ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдбреИрдЧрд░ 2 рд╕реЗ рдореБрдЭреЗ рд╡рд╕рдВрдд рдХреЗ рд╕рдорд╛рди рд╣реА "рдЬрд╛рджреВ" рдХреА рдЙрдореНрдореАрдж рдереА рдФрд░ рд╡рд╣реА рд╡рд┐рд╕реНрддреГрдд рдкреНрд░рд▓реЗрдЦрди рдФрд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ред рдФрд░ рдЯреВрдЯ рдЧрдпрд╛: рдкреА

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

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдЕрдкрдиреА рдЦреЛрдЬреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдПрдХ рд╕реВрдЦрд╛ рдирд┐рдЪреЛрдбрд╝ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ - рдПрдорд╡реАрдкреА рдФрд░ рдбреИрдЧрд░ 2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдХрдВрдХрд╛рд▓ рдмрдирд╛рдиреЗ рдкрд░ рдПрдХ рдХрджрдо-рджрд░-рдЪрд░рдг рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ред рддреЛ, рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

рез.рез рд╕рд╛рд░


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЬрдбрд╝ рдореЗрдВ рдПрдмреНрд╕рдЯреНрд░реИрдХреНрдЯ рдкреИрдХреЗрдЬ рдмрдирд╛рдПрдВ, рдЗрд╕реЗ com.caesar84mx.mymvcapp.braphs рдХрд░реЗрдВред рд╣рдо рдЗрд╕рдореЗрдВ 2 рдЗрдВрдЯрд░рдлреЗрд╕ рдмрдирд╛рдПрдБрдЧреЗ: view.BaseView рдФрд░ presenter.BaseMvpPresenterред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:



рдпреЗ рдореВрд▓ рд╡рд╛рд╕реНрддреБ рддрддреНрд╡ рд╣реИрдВ рдЬреЛ рдмрд╛рдж рдореЗрдВ рдЖрд╡реЗрджрди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рдЗрд╕рдХреЗ рдмрд╛рдж, рдмреЗрд╕ рд╡реНрдпреВ рдЦреЛрд▓реЗрдВ рдФрд░ рд╢реЛ рд╡реНрдпреВ () getContext () рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВ:

interface BaseView { fun showView(view: View, isShown: Boolean) { view.visibility = if (isShown) View.VISIBLE else View.GONE } fun getContext(): Context } 

рдЕрдм BaseMvpPresenter рдЦреЛрд▓реЗрдВ рдФрд░ рдЗрд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

 interface BaseMvpPresenter<V: BaseView> { var isAttached: Boolean fun attach(view: V) fun detach() } 

рджреГрд╢реНрдп рдкреИрдХреЗрдЬ рдореЗрдВ, рдПрдХ рд╕рд╛рд░ BaseCompatActivity рдХреНрд▓рд╛рд╕ рдмрдирд╛рдПрдВ, рдЗрд╕реЗ AppCompatActivity рд╕реЗ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░реЗрдВ, рдФрд░ рдирдП рдмрдирд╛рдП рдЧрдП BaseView рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░реЗрдВред рдХрдХреНрд╖рд╛ рдХреЗ рдЕрдВрджрд░, рд╣рдо рд╕рд╛рд░ init рд╡рд┐рдзрд┐ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рддреЗ рд╣реИрдВ (saveInstanceState: рдмрдВрдбрд▓?) рдФрд░ рдмреЗрд╕ рд╡реНрдпреВ рд╕реЗ getContext () рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ:

 abstract class BaseCompatActivity: AppCompatActivity(), BaseView { override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) { super.onCreate(savedInstanceState, persistentState) init(savedInstanceState) } protected abstract fun init(savedInstanceState: Bundle?) override fun getContext(): Context = this } 

рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕ рд╡рд░реНрдЧ рд╕реЗ рд╣рдо рд╕рднреА рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рд▓реЗрдВрдЧреЗред

рдЕрдм рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ - рдПрдХ BasePresenter рд╡рд░реНрдЧ рдмрдирд╛рдПрдВ рдЬреЛ BaseMvpPresenter рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ:

 open class BasePresenter<V : BaseView> : BaseMvpPresenter<V> { protected var view: V? = null private set override var isAttached = view != null override fun attach(view: V) { this.view = view } override fun detach() { this.view = null } } 

рдЦреИрд░, рд╣рдордиреЗ рдмреБрдирд┐рдпрд╛рджреА рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рддрддреНрд╡реЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░ рд▓реА рд╣реИ, рдЕрдм рд╣рдо рдЙрди рдШрдЯрдХреЛрдВ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ рдЬрд┐рдирд╕реЗ рд╣рдорд╛рд░рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

1.2ред рдШрдЯрдХреЛрдВ


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, com.caesar84mx.mymvcapp.compords рдкреИрдХреЗрдЬ рдмрдирд╛рдПрдВ, рдЗрд╕рдореЗрдВ рдореЗрдирд╕реНрдХреНрд░реАрди рдкреИрдХреЗрдЬ, рдЬрд┐рд╕рдореЗрдВ, рдмрджрд▓реЗ рдореЗрдВ, рдпреВрдЖрдИ рдФрд░ рдмреИрдХрд╕реНрдЯреЗрдЬ рдкреИрдХреЗрдЬ, рдФрд░ рдореЗрдирд╕реНрдХреНрд░реАрди рд╡рд░реНрдЧ рдХреЛ рдпреВрдЖрдИ рдкреИрдХреЗрдЬ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ:



рдЕрдм рд╣рдо рдореЗрдирд╕реНрдХреНрд░реАрди рдХреНрд▓рд╛рд╕ рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдмрдирд╛рдП рдЬрд╛рдиреЗ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдСрдирдХреНрд░рд┐рдПрдЯ () рд╡рд┐рдзрд┐ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╣рдЯрд╛ рджреЗрдВрдЧреЗ, рд╕рд╛рде рд╣реА AppCompatActivity рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдФрд░ BaseCompatActivity рд╕реЗ рдЗрд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред рдЕрдм рд╣рдо рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдкрд╣рд▓реЗ рдШреЛрд╖рд┐рдд рдЗрдирд┐рдЯ () рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рд╕рднреА рдХреЛрдб рдЬреЛ рд╣рдо onCreate () рд╡рд┐рдзрд┐ рдореЗрдВ рдбрд╛рд▓реЗрдВрдЧреЗ, рдкрд╣рд▓реЗ рд╣рдо рдЙрд╕рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВ (рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ, init () рд╡рд┐рдзрд┐ рдХреЛ onCreate () рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рдХреА рд╡рд┐рдзрд┐) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:

 class MainScreen : BaseCompatActivity() { override fun init(savedInstanceState: Bundle?) { setContentView(R.layout.activity_main_screen) } } 

рдорд╣рд╛рди, рдПрдорд╡реАрдкреА рдкреИрдЯрд░реНрди рдХрд╛ рджреГрд╢реНрдп рддрддреНрд╡ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЕрдм рдЪрд▓реЛ рд╣рдорд╛рд░реЗ рдШрдЯрдХ рдХреЗ рдмреИрдХрд╕реНрдЯреЗрдЬ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ - рдмреИрдХрд╕реНрдЯреЗрдЬ рдкреИрдХреЗрдЬред рдЖрдЗрдП, MainSconContract рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рдПрдВ - рддрдерд╛рдХрдерд┐рдд рдЕрдиреБрдмрдВрдз рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣рдо рдЕрдкрдиреЗ рдкреИрдЯрд░реНрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЧреЗред рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ, 2 рд╕рдм-рд╡реЗрдиреНрдлрд╝рд░реНрд╕ рдмрдирд╛рдПрдБ - рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛ рдФрд░ рджреГрд╢реНрдп:

 interface MainScreenContract { interface Presenter: BaseMvpPresenter<MainScreenContract.View> interface View: BaseView } 

рдЕрдм, рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ рдФрд░ MainScreenPresenter рд╡рд░реНрдЧ рдмрдирд╛рддреЗ рд╣реИрдВ:

 class MainScreenPresenter : BasePresenter<MainScreenContract.View>(), MainScreenContract.Presenter { } 

рдЖрд╡реЗрджрди рдХрдВрдХрд╛рд▓ рд▓рдЧрднрдЧ рддреИрдпрд╛рд░ рд╣реИ, рдХреБрдЫ рд╕реНрдкрд░реНрд╢ рдмрдиреЗ рд╣реБрдП рд╣реИрдВред MainScreen рд╡рд░реНрдЧ рдореЗрдВ, MainScreenContract.View рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЬреЛрдбрд╝реЗрдВ, рдкреНрд░рд╕реНрддреЛрддрд╛ рдЪрд░ рдмрдирд╛рдПрдБ рдФрд░ рдЖрд░рдВрдн рдХрд░реЗрдВ: MainScreenPresenter, рдФрд░ init () рд╡рд┐рдзрд┐ рдореЗрдВ, рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛ рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рджреЗрдЦреЗрдВ:

 class MainScreen : BaseCompatActivity(), MainScreenContract.View { val presenter: MainScreenPresenter? = MainScreenPresenter() override fun init(savedInstanceState: Bundle?) { setContentView(R.layout.activity_main_screen) presenter?.attach(this) } } 

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдордиреЗ рдПрдХ рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛ рдмрдирд╛рдпрд╛ рдФрд░ рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рджреГрд╢реНрдп рдЙрджрд╛рд╣рд░рдг (android.view.View рдХреЗ рд╕рд╛рде рднреНрд░рдорд┐рдд рди рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП) рдореЗрдВ рдЬреЛрдбрд╝рд╛, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛ рдХреЛ рджреГрд╢реНрдп рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

1.3ред рдкрд╣рд▓реЗ рднрд╛рдЧ рдХрд╛ рдирд┐рд╖реНрдХрд░реНрд╖


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

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

рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛ рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддреЗ рд╕рдордп, рджреГрд╢реНрдп рдХреЛ рдЖрдзрд╛рд░рднреВрдд рд╕реБрдкрд░рдХреНрд▓рд╛рд╕ рдХреЗ рджреГрд╢реНрдп рдЪрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЗрд░рдлреЗрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрдмрдХрд┐ рджреГрд╢реНрдп рдХреЗ рдЕрдиреБрд░реВрдк рддрд░реАрдХреЛрдВ рдХреЛ рдЧрддрд┐рд╡рд┐рдзрд┐ рд╡рд░реНрдЧ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЖрдк рдкреВрдЫрддреЗ рд╣реИрдВ рдХрд┐ рдбреИрдЧрд░ 2 рдпрд╣рд╛рдВ рдХрд╣рд╛рдВ рд╣реИ рдФрд░ рдЗрд╕рдиреЗ рд╣рдореЗрдВ рдЖрддреНрдорд╕рдорд░реНрдкрдг рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рд╣реИ, рдХреНрдпрд╛ рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ рдбреАрдЖрдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рджреБрдирд┐рдпрд╛ рдкрд░ рдПрдХ рдЙрд▓реНрд▓реВ рдЦреАрдВрдЪ рд░рд╣рд╛ рд╣реЛрдЧрд╛? рджреВрд╕рд░реЗ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдФрд░ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рдФрд░ рдХреИрд╕реЗ рд╣реИ - рдореЗрд░реЗ рд▓реЗрдЦ рдХреЗ рджреВрд╕рд░реЗ рднрд╛рдЧ рдореЗрдВ ;)

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


All Articles