Kotlin рдореЗрдВ Android рдХреЗ рд▓рд┐рдП 16 рд╡рд┐рдХрд╛рд╕ рдпреБрдХреНрддрд┐рдпрд╛рдБред рднрд╛рдЧ 1



рдЗрди рдпреБрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ try.kotlinlang.org рдкреНрд░рд▓реЗрдЦрди рдХреЛ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ try.kotlinlang.org рдкрд░ рд╕реНрд╡рдпрдВ рднрд╛рд╖рд╛ рд╕реАрдЦрдирд╛ try.kotlinlang.org ред рдЪреВрдВрдХрд┐ рдпреЗ рдпреБрдХреНрддрд┐рдпрд╛рдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдВрдбреНрд░реЙрдЗрдб рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдХреЛрдЯрд▓рд┐рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕рдбреАрдХреЗ рдХреЗ рд╕рд╛рде рднреА рдЕрдиреБрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рднреА рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рдХреЛрдЯрд▓рд┐рди рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде рдЦреБрдж рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░реЗрдВ рдФрд░ рдЬреЗрдЯрдмреНрд░реЗрди (рдХреЛрдЯрд▓рд┐рди рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛) рд╕реЗ рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рд╕рд╛рде рдХреЛрдЯрд▓рд┐рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдХреЛрдЯрд▓рд┐рди рдмреЗрд╕рд┐рдХ рдПрдВрдбреНрд░реЙрдЗрдб рдЯрд┐рдкреНрд╕


рдЖрд▓рд╕реА рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ


рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рдХрдИ рдлрд╛рдпрджреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреИрд╕реЗ:

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

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

 val purchasingApi: PurchasingApi by lazy { val retrofit: Retrofit = Retrofit.Builder() .baseUrl(API_URL) .addConverterFactory(MoshiConverterFactory.create()) .build() retrofit.create(PurchasingApi::class.java) } 

рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЖрд▓рд╕реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЦрд░реАрджрд╛рд░реА рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ рдФрд░ рд▓рд╛рд╡рд╛рд░рд┐рд╕ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрд▓рд╕реА рд▓реЛрдбрд┐рдВрдЧ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рддрд░реНрдХ рддрд░реНрдХ рдХреЛ рд╕рдордЭрдиреЗ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 val bounds: RectF by lazy { RectF(0f, 0f, width.toFloat(), height.toFloat()) } 

рдЬреИрд╕реЗ рд╣реА рдкрд╣рд▓реА рдХреЙрд▓ рдХреА рдЬрд╛рддреА рд╣реИ, RectF рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреГрд╢реНрдп рдХреА рд╡рд░реНрддрдорд╛рди рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЗрд╕реЗ рдЕрд▓рдЧ рд╕реЗ рдмрдирд╛рдиреЗ рдФрд░ рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред

рдХрд╕реНрдЯрдо рдЧреЗрдЯрд░реНрд╕ рдФрд░ рд╕реЗрдЯрд░


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

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

 @ParseClassName("Book") class Book : ParseObject() { // getString() and put() -  ParseObject var name: String get() = getString("name") set(value) = put("name", value) var author: String get() = getString("author") set(value) = put("author", value) } 

рдЗрди рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЕрдиреНрдп рдореЙрдбрд▓реЛрдВ рдореЗрдВ рд╕рдВрдкрддреНрддрд┐ рдПрдХреНрд╕реЗрд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рдорд╛рди рд╣реЛрдЧрд╛, рдЬреИрд╕реЗ:

 val book = api.getBook() textAuthor.text = book.author 

рдЕрдм, рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдореЙрдбрд▓ рдХреЛ рдкрд╛рд░реНрд╕ рд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдХреЛрдб рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рд▓реИрдореНрдмреНрдбрд╛


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

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реБрдирдиреЗ рд╕реЗ рдХреБрдЫ рдРрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛:

 button.setOnClickListener { view -> startDetailActivity() } 

рдФрд░ рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд░рд┐рдЯрд░реНрди рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

 toolbar.setOnLongClickListener { showContextMenu() true } 

рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕рдбреАрдХреЗ рдореЗрдВ, рдЕрдХреНрд╕рд░ рдЗрди рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдореЗрдордиреЗ рдиреЗ рдПрдХ рдзрдорд╛рдХреЗ рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рдореБрдХрд╛рдмрд▓рд╛ рдХрд┐рдпрд╛ред

рдбреЗрдЯрд╛ рдХрдХреНрд╖рд╛рдПрдВ


рдбреЗрдЯрд╛ рдХрдХреНрд╖рд╛рдПрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ equals() , hashCode() , copy() рдФрд░ toString() рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддреА рд╣реИрдВред рд╡реЗ рд╕реНрдкрд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдореЙрдбрд▓ рдореЗрдВ рдХрд┐рд╕ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рддрд░реНрдХ рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдБ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдбреЗрдЯрд╛ рд╡рд░реНрдЧ рд╣реИ:

 data class User(val name: String, val age: Int) 

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

 data class User( @SerializedName("name") val name: String = "", @SerializedName("age") val age: Int = 0 ) 

рджрд╛рддрд╛рд╕реЗрдЯ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ


рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ, рд╕рдВрдЧреНрд░рд╣ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд▓рдЧрд╛рддрд╛рд░ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░, рдЙрдиреНрд╣реЗрдВ рдлрд╝рд┐рд▓реНрдЯрд░ рдпрд╛ рд╕рдВрд╢реЛрдзрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

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

 val users = api.getUsers() val activeUsersNames = items.filter { it.active } adapter.setUsers(activeUsers) 

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

рдпрд╣ рд▓реЗрдЦ рдХреЗ рдкрд╣рд▓реЗ рднрд╛рдЧ рдХрд╛ рд╕рдорд╛рдкрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдПрдХ рдореБрдлреНрдд рд╡реЗрдмрд┐рдирд╛рд░ рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ: "рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг" ред

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


All Articles