Android рдкрд░ рд╕реНрд╡рдЪреНрдЫ рдХреЛрдб рдХреЛ рд╕рдордЭрдирд╛

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

рдкреБрд╕реНрддрдХреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рд╛рде, рдпрджрд┐ рдЖрдк рдХреБрдЫ рдорд╣рд╛рди рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реИ рдФрд░ рдЕрдкрдиреЗ рдХреЛрдб рдХреЛ рдХреИрд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдирд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЯреАрдо рдХреЗ рд╕рджрд╕реНрдп рдпрд╛ рдХреЛрдИ рдЕрдиреНрдп рд╡реНрдпрдХреНрддрд┐ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХрд╛ (рдЕрдкреНрд░рдЪрд▓рд┐рдд) рдХреЛрдб рд╣реИ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдмрд╕ рдЪрд░ рдирд╛рдо рдпрд╛ рдкреИрдХреЗрдЬ рдпрд╛ рдХрдХреНрд╖рд╛рдПрдВ рджреЗрдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдФрд░ рд╡реЗ рддреБрд░рдВрдд рд╕рдордЭ рдЬрд╛рдПрдВрдЧреЗред рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рдХреЛрдб рдХреЛ "E ** l" рдХрд╣рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реИред

рдХреНрд▓реАрди рдХреЛрдб рдХреНрдпрд╛ рд╣реИ?




рдЕрдиреБрд╡рд╛рдж
рдкреНрд░рд┐рдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд░:

рдЬрдм рдореИрдВрдиреЗ рдпрд╣ рдХреЛрдб рд▓рд┐рдЦрд╛ рдерд╛, рдХреЗрд╡рд▓ рднрдЧрд╡рд╛рди рдФрд░ рдореБрдЭреЗ рдкрддрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!
рдЕрдм рдпрд╣ рддреЛ рдХреЗрд╡рд▓ рднрдЧрд╡рд╛рди рд╣реА рдЬрд╛рдирддрд╛ рд╣реИ!

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

рдХреБрд▓ рдШрдВрдЯреЗ рдЦрд░реНрдЪ: 567

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рддреЗрдЬреА рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╡реЗ рдЗрд╕ рдХреЛрдб рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдПрдХ рддрдХрдиреАрдХреА рдЛрдг рднреА рдмрди рдЬрд╛рдПрдЧрд╛ред

рдЖрдкрдХрд╛ рдХреЛрдб "рд╢реБрджреНрдз" рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИ рдпрджрд┐ рдЖрдкрдХреА рдЯреАрдо рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рд╕рджрд╕реНрдп рдЗрд╕реЗ рд╕рдордЭ рд╕рдХрддрд╛ рд╣реИред рд╕реНрд╡рдЪреНрдЫ рдХреЛрдб рдХреЛ рдореВрд▓ рд▓реЗрдЦрдХ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рднреА рдбреЗрд╡рд▓рдкрд░ рджреНрд╡рд╛рд░рд╛ рдкрдврд╝рд╛ рдФрд░ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рдордЭ рдХреЗ рд╕рд╛рде рдкрдардиреАрдпрддрд╛, рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓рддрд╛, рд╡рд┐рд╕реНрддрд╛рд░рд╢реАрд▓рддрд╛ рдФрд░ рд╕реНрдерд┐рд░рддрд╛ рдЖрддреА рд╣реИред

рдХреНрдпрд╛ рдореБрдЭреЗ рдЗрд╕рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП?


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

рд╕реНрд╡рдЪреНрдЫ рд╕рдВрд╣рд┐рддрд╛ рдХреЗ рд╕рдВрдХреЗрдд


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

рдПрдХ рдЕрдЪреНрдЫреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдФрд░ рдкреЗрд╢реЗрд╡рд░ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдкреЗрд╢реЗрд╡рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рд╕рдордЭрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рдХреА рд╕рдордЭ рд╕рд░реНрд╡реЛрдкрд░рд┐ рд╣реИред рдПрдХ рдкреЗрд╢реЗрд╡рд░ рдЗрд╕ рд╢рдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рд░ рдХреЛрдИ рд╕рдордЭрддрд╛ рд╣реИ - рд░реЙрдмрд░реНрдЯ рд╕реАред рдорд╛рд░реНрдЯрд┐рди

рдЪреЗрддрди рдирд╛рдо рд▓рд┐рдЦрд┐рдП


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

рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╣реИ

// Bad variables naming var a = 0 // user ages var w = 0 // user weight var h = 0 // user height // Bad functions naming fun age() fun weight() fun height() // Bad classes naming to get user data class UserInfo() // Best practices varibales naming var userAge = 0 var userWeight = 0 var userHeight = 0 // Best practices functions naming fun setUserAge() fun setUserWeight() fun setUserHeight() // Best practices classes naming to get user data class Users() 

рд╡рд░реНрдЧ рдХреЗ рдирд╛рдо


рд╡рд░реНрдЧреЛрдВ рдФрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрдЬреНрдЮрд╛, рдЬреИрд╕реЗ рдХрд┐ рдХрд╕реНрдЯрдо, рд╡рд┐рдХреАрдкреЗрдЬ, рдЦрд╛рддрд╛, рдФрд░ рдПрдбреНрд░реЗрд╕рдкрд░реНрд╕рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдкреНрд░рдмрдВрдзрдХ, рдкреНрд░реЛрд╕реЗрд╕рд░, рдбреЗрдЯрд╛ рдпрд╛ рдЬрд╛рдирдХрд╛рд░реА рдЬреИрд╕реЗ рд╢рдмреНрджреЛрдВ рд╕реЗ рдмрдЪреЗрдВред рдпрд╣ рднреА рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо рдПрдХ рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╡рд┐рдзрд┐ рдирд╛рдо


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

рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рд╣рдо рдЬрд╛рд░реА рд░рдЦреЗрдВ, рдПрдХ рдЫреЛрдЯрд╛ рдмреНрд░реЗрдХ рд▓реЗрдВ, рдХреЙрдлреА рдФрд░ рдХреБрдХреАрдЬрд╝ рдкрд░ рд╕реНрдЯреЙрдХ рдХрд░реЗрдВред



рдареАрдХ рд╣реИ, рдЕрдм рд╣рдо SOLID рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред

SOLID рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб рд▓рд┐рдЦреЗрдВ


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

рдПрдХрд▓ рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╕рд┐рджреНрдзрд╛рдВрдд (рдПрд╕)


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

рдПрдХ рдЙрджрд╛рд╣рд░рдг:

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ RecyclerView.Adcape рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдСрдирд░ рдмрд┐рдЬрдиреЗрд╕ рд▓реЙрдЬрд┐рдХ рдСрди рдмрд┐рдВрдб рд╡реНрдпреВ рд╡реНрдпреВрдмреЛрд░реНрдб рд╣реИ

 class MyAdapter(val friendList: List<FriendListData.Friend>) : RecyclerView.Adapter<CountryAdapter.MyViewHolder>() { inner class MyViewHolder(view: View) : RecyclerView.ViewHolder(view) { var name: TextView = view.findViewById(R.id.text1) var popText: TextView = view.findViewById(R.id.text2) } override fun onBindViewHolder(holder: MyViewHolder, position: Int) { val friend = friendList[position] val status = if(friend.maritalStatus == "Married") { "Sold out" } else { "Available" } holder.name.text = friend.name holder.popText.text = friend.email holder.status.text = status } override fun getItemCount(): Int { return friendList.size } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder { val view = LayoutInflater.from(parent.context).inflate(R.layout.item_friendlist, parent, false) return MyViewHolder(view) } } 

рдпрд╣ RecyclerView.Adcape рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ onBindViewHolder рдХреЗ рдЕрдВрджрд░ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рд╣реЛрддреЗ рд╣реИрдВред рдпрд╣ рд╡рд┐рдзрд┐ рдХреЗрд╡рд▓ рджреГрд╢реНрдп рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИред

рдЦреБрд▓реЗрдкрди / рдмрдВрдж рдХрд░рдиреЗ рдХрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд (O)


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

 class FriendListAdapter(val friendList: List<FriendListData.Friend>) : RecyclerView.Adapter<CountryAdapter.MyViewHolder>() { inner class MyViewHolder(view: View) : RecyclerView.ViewHolder(view) { var name: TextView = view.findViewById(R.id.text1) var popText: TextView = view.findViewById(R.id.text2) } override fun onBindViewHolder(holder: MyViewHolder, position: Int) { val friend = friendList[position] holder.name.text = friend.name holder.popText.text = friend.email } override fun getItemCount(): Int { return friendList.size } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder { val view = LayoutInflater.from(parent.context).inflate(R.layout.item_friendlist, parent, false) return MyViewHolder(view) } } 

рдмрд╛рд░рдмрд░рд╛ рд▓рд┐рд╕реНрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╕рд┐рджреНрдзрд╛рдВрдд (L)


рдмрд╛рд▓ рд╡рд░реНрдЧ рдХреЛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХрд╛ рдкреВрд░рдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рди рдХрд┐ рдЙрд╕реЗ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЙрдкрд╡рд░реНрдЧ рдЙрди рдореВрд▓ рддрд░реАрдХреЛрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЗрд╕ рдореВрд▓ рд╡рд░реНрдЧ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд╡рд░реНрдЧ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдПрдХ onClick () рд╢реНрд░реЛрддрд╛ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЖрдк рд╢реНрд░реЛрддрд╛ рдХреЛ MyActivity рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЬрдм рдЙрд╕реЗ onClick () рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдЙрд╕реЗ рдЯреЛрд╕реНрдЯ рдХреНрд░рд┐рдпрд╛ рджреЗрддреЗ рд╣реИрдВред

 interface ClickListener { fun onClick() } class MyActivity: AppCompatActivity(), ClickListener { //........ override fun onClick() { // Do the magic here toast("OK button clicked") } } 

рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЬреБрджрд╛рдИ рд╕рд┐рджреНрдзрд╛рдВрдд


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

рдЙрджрд╛рд╣рд░рдг: рд╣рдорд╛рд░реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ, рд╣рдореЗрдВ SearchView.OnQueryTextListener () рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдХреЗрд╡рд▓ onQuerySubmit () рд╡рд┐рдзрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

 mSearchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener{ override fun onQueryTextSubmit(query: String?): Boolean { // Only need this method return true } override fun onQueryTextChange(query: String?): Boolean { // We don't need to implement this method return false } }) 

рд╣рдо рдпрд╣ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ? рдЖрд░рд╛рдо рд╕реЗ! рдмрд╕ рдХреЙрд▓рдмреИрдХ рдмрдирд╛рдПрдВ рдФрд░ SearchView.OnQueryTextListener () рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рдПрдВ

 interface SearchViewQueryTextCallback { fun onQueryTextSubmit(query: String?) } class SearchViewQueryTextListener(val callback: SearchViewQueryTextCallback): SearchView.OnQueryTextListener { override fun onQueryTextSubmit(query: String?): Boolean { callback.onQueryTextSubmit(query) return true } override fun onQueryTextChange(query: String?): Boolean { return false } } 

рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ

 val listener = SearchViewQueryTextListener( object : SearchViewQueryTextCallback { override fun onQueryTextSubmit(query: String?) { // Do the magic here } } ) mSearchView.setOnQueryTextListener(listener) 

рдпрд╛ рдЗрд╕рд▓рд┐рдП рдХреЛрдЯрд▓рд┐рди рдореЗрдВ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдлрдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

 interface SearchViewQueryTextCallback { fun onQueryTextSubmit(query: String?) } fun SearchView.setupQueryTextSubmit (callback: SearchViewQueryTextCallback) { setOnQueryTextListener(object : SearchView.OnQueryTextListener{ override fun onQueryTextSubmit(query: String?): Boolean { callback.onQueryTextSubmit(query) return true } override fun onQueryTextChange(query: String?): Boolean { return false } }) } 

 val listener = object : SearchViewQueryTextCallback { override fun onQueryTextSubmit(query: String?) { // Do the magic here } } mSearchView.setupQueryTextSubmit(listener) 

рдирд┐рд░реНрднрд░рддрд╛ рдЙрд▓рдЯрд╛ рд╕рд┐рджреНрдзрд╛рдВрдд


рдХреБрдЫ рд╡рд┐рд╢реЗрд╖ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдмрд┐рдирд╛, рдЕрдореВрд░реНрддрддрд╛ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ред
рдЪрд╛рдЪрд╛ рдмреЙрдм рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдЙрд▓рдЯрд╛ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛ рдореЗрдВ рджреЛ рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдВ рд╣реИрдВред

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

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

рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ

 interface UserActionListener { fun getUserData() } class UserPresenter : UserActionListener() { // ..... override fun getUserData() { val userLoginData = gson.fromJson(session.getUserLogin(), DataLogin::class.java) } // ..... } 

рдФрд░ рдЕрдм рдЧрддрд┐рд╡рд┐рдзрд┐ рдкрд░

 class UserActivity : AppCompatActivity() { //..... val presenter = UserPresenter() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // Activity doesn't need to know how presenter works // for fetching data, it just know how to call the functions // So, if you add method inside presenter, it won't break the UI. // even the UI doesn't call the method. presenter.getUserData() } //.... } 

рдЗрд╕ рддрд░рд╣, рд╣рдо рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕рд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╣рдорд╛рд░рд╛ рджреГрд╢реНрдп рд╡рд░реНрдЧ рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╕рдВрджрд░реНрдн рдХреЛ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИред

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


All Articles