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

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ 3 рдкрд░рддреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЖрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП "рдЪреЗрд╣рд░рд╛", рдбреЗрдЯрд╛ рднрдВрдбрд╛рд░рдг рдФрд░ рд╕реЗрд╡рд╛, рдЬрд╣рд╛рдВ рддрд░реНрдХ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдЫрд┐рдкрд╛ рд╣реЛрддрд╛ рд╣реИред
рдореИрдВ рдПрдХ рд╣реЛрд▓реАрд╡рд░ рдирд╕реНрд▓ рдирд╣реАрдВ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдФрд░ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддрд░реНрдХ рджреЗрддрд╛ рд╣реВрдВ, рдореИрдВ рд╕рд┐рд░реНрдл рдпрд╣ рдмрддрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдпрд╣ рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдореЗрд░реЗ рд╕рд╣рдпреЛрдЧреА рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВред
рдХреБрдЫ рд╢рдмреНрдж рдРрд╕рд╛ рдХреНрдпреЛрдВ
рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рддрд╛ рдбреЗрдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрди рд╕реВрдЪрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде
рдПрдХ рдмрд╣реБрдд рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЪреАрдЬрд╝ рд╣реИ рдФрд░ рдпрд╣ рд╕рднреА рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИред рд╣рдо рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдЖрд╡рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдореБрдЭреЗ рд╡рд╣рд╛рдБ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рдареАрдХ рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ред
рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЖрджреЗрд╢реЛрдВ рдХреА рд╕реЗрд╡рд╛ - рдирд╛рдо рд╕реЗ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ (рджреВрд╕рд░реЗ рдзрд╛рдЧреЗ рдореЗрдВ) рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░рддрд╛ рд╣реИред рд▓рдЧрднрдЧ рд╕рднреА рдХреНрд░рд┐рдпрд╛рдПрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП - рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд▓рд┐рдЦрдирд╛, рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЬрд╛рдирд╛ рдФрд░ рдЧрдгрдирд╛ рдХрд░рдирд╛ред
рдХреНрдпреЛрдВ "рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЖрджреЗрд╢"? рдпрд╣рд╛рдБ рднреА, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ - рдкреНрд░рддреНрдпреЗрдХ рдХреНрд░рд┐рдпрд╛ рдПрдХ рдкреВрд░реНрдг рдЯреАрдо рд╣реИред рдЬреЛ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реИ, рдЙрдирдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреА рдЕрдзрд┐рд╕реВрдЪрдирд╛ред
рдпрд╣рд╛рдБ
рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдм рдХреБрдЫ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИред
"рдереВрдерди" - рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрддрд┐рд╡рд┐рдзрд┐ / рдЯреБрдХрдбрд╝реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯред рдореИрдВ рдпрд╣ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдбреЗрдЯрд╛ рдХреА рдкреВрд░реА рд▓реЛрдбрд┐рдВрдЧ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП (рди рд╣реА рдпреВрдЖрдИ рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рднреА рдпрд╛рддреНрд░рд╛рдПрдВ рдПрдХ рд╣реА рдирдВрдмрд░ рдХреЗ рд▓рд┐рдП)ред рдФрд░ рдпрд╣рд╛рдВ рд▓реЛрдбрд░ рдореИрдиреЗрдЬрд░ рд╣рдорд╛рд░реА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрддрд╛ рд╣реИ - рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХреА рд╕реБрд╡рд┐рдзрд╛ рднреАред CursorLoader рдХреА рдУрд░ рджреЗрдЦрдиреЗ рд▓рд╛рдпрдХ
рдмрд╛рдЗрдХ
рд╢рд╛рдпрдж рд╣рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдиреЗ рдЕрдкрдиреА рдмрд╛рдЗрдХ рдЦреБрдж рдмрдирд╛рдИред рдЗрдирд╕реЗ рд▓рд╛рдн рднреА рд╣реЛрддрд╛ рд╣реИ - рдЖрдк рдЕрдкрдиреА рдЬрд╝рд░реВрд░рдд рдХреЗ рд╕рднреА рдиреБрдХрд╕рд╛рдиреЛрдВ рдХреЛ рд╕рдордЭрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИред рд▓реЗрдХрд┐рди рд╣рд░ рдмрд╛рд░ рдмрд╛рдЗрдХ рд▓рд┐рдЦрдирд╛ рдареАрдХ рдирд╣реАрдВ рд╣реИред рдФрд░ рдЖрдк рдЗрд╕реЗ рджреВрд╕рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рд░реЛрд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдХреЛрдб рдмреЗрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдХреА рд╕рдВрдкрддреНрддрд┐ рд╣реИред
рдмреЗрд╢рдХ, рдЖрдкрдХрд╛ рдХреЛрдб рд▓рд┐рдм рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░реЗрдВ, рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд╕рд╛рде рдЕрдиреБрдмрдВрдз рдореЗрдВ рдпрд╣ рд▓рд┐рдЦреЗрдВ рдХрд┐ рд╣рдо рд▓рд┐рдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╕рднреА рдЕрд╡рд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░рд┐рд╡рд╛рдж рд▓рд┐рдЦрдирд╛ рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ, рд╕рднреА рдФрд░ рдЕрдзрд┐рдХ рдХреНрдпреЛрдВ рдПрдХ рдФрд░ рдмрд╛рдЗрдХ рдмрдирд╛рддреЗ рд╣реИрдВ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИ, рдФрд░ рдмрдЧ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд╛рдП рдЧрдП рд╣реИрдВ рдФрд░ рддрдп рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдЕрдВрдд рдореЗрдВ рдпрд╣ рдореЗрд░реЗ рд╕рд╛рде рд╣реБрдЖред
рдореИрдВ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реВрдВ рдХрд┐ рджреБрд╢реНрдорди рд░рд┐рдлреНрд▓реЗрдХреНрдЯрд┐рд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдкрд╣рд▓реА рдлрд┐рд▓реНрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдФрд░ рдЖрдк рд╣рдореЗрд╢рд╛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╣рд╛рдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред
рд╕рдм рдХреБрдЫ рдХреЗ рдКрдкрд░, рдореБрдЭреЗ рдПрдиреЛрдЯреЗрд╢рди рдкрд╕рдВрдж рд╣реИред рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдореЗрд░рд╛ рдкреВрд░рд╛ рд╕рдВрдЧреНрд░рд╣ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИред рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ ...
Groundy
рдпрд╣ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрдорд╛рдВрдб рд╕реЗрд╡рд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИред
- рдЯреАрдореЗрдВ рдХреЗрдирд╕реЗрд▓рд┐рдЯ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ
- AsyncTask рдкреНрд░реЗрдорд┐рдпреЛрдВ рдХреЛ рд╕рдВрдХреНрд░рдордг рдХреА рд╕реВрдЪрдирд╛ рдирд╣реАрдВ рд╣реЛрдЧреА
- рдХреЙрд▓рдмреИрдХ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИ рдФрд░ рд╡реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИрдВред
рдореИрдВ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд┐рд░ рд╡рд┐рдзрд┐ рд▓рд┐рдЦрдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдХреЙрд▓рдмреИрдХ рдХреЛ рдЯрд╛рдЗрдк рдХрд░рддрд╛ рд╣реВрдВред
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рдХреЙрд▓рдмреИрдХ рдХреЛрдИ рднреА рд╡рд╕реНрддреБ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдореИрдВ рдЗрд╕реЗ рдЯрд╛рдЗрдк рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред рдпрд╣ рд╕рдВрдХрд▓рдХ рдХреЛ рд╣рдорд╛рд░реА рдорджрдж рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред
рдФрд░ рдпрд╣ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдкрд░ рдХрд▓реНрдмреЗрдХреНрд╕ рдХреЛ рдлрд╛рдВрд╕реА рджреЗрдиреЗ рдХреЗ рдкреНрд░рд▓реЛрднрди рд╕реЗ рдЖрдкрдХреА рд░рдХреНрд╖рд╛ рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рдУрдУрдкреА рдХреЗ рдПрдХ рдЦрдВрднреЗ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ - рдЗрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди :)
рдмрд╣реБрдд рдХрд╛рд░рдгреЛрдВ рд╕реЗ, рд╣рдореЗрдВ рдПрдХ рд╕реНрдерд┐рд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╡рд┐рдзрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
public class LoginCommand extends GroundyTask{ private static final String ARG_PASSWORD = "arg_password"; private static final String ARG_USER = "arg_username"; @Override protected TaskResult doInBackground() { String userName = getStringArg(ARG_USER); String password = getStringArg(ARG_PASSWORD);
рдкреБрд░рд╛рдирд╛ рд╡рд╛рдкрд╕
REST рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдЯреВрд▓, рдЬреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд▓рд┐рдЦрд╛ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИред рдХреЛрдб рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрддреНрдкрдиреНрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред
рдореИрдВрдиреЗ рд╕реНрдкреНрд░рд┐рдВрдЧ рдПрдВрдбреНрд░реЙрдЗрдб рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рджреЗрдЦрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд┐рд╕реА рддрд░рд╣ рднрд╛рд░реА рд╣реИред
public interface ServicesFootballua { String API_URL = "http://services.football.ua/api"; @GET("/News/GetArchive") NewsArchive getNewsArchive(@Query("pageId") long pageId, @Query("count") long count, @Query("datePublish") String date); }
рдЦреИрд░, рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдЗрд╕реЗ рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ
private static ServicesFootballua API = new RestAdapter.Builder() .setServer(ServicesFootballua.API_URL) .build() .create(ServicesFootballua.class); ................................... archive = API.getNewsArchive(PAGE_ID, COUNT, dateFormat.format(getTodayTime()));
рдЖрдк рдЕрдкрдиреЗ рдХрдирд╡рд░реНрдЯрд░, http рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╕реНрдерд╛рдирд╛рдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
AnnotatedSQL
рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рддрд╛ рдмрдирд╛рддрд╛ рд╣реИред
рдореЗрд░рд╛ рд╢рд┐рд▓реНрдк, рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрддреБрд╖реНрдЯ рд╣реВрдВред рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА
рдпрд╣рд╛рдБ -
рдпрд╣рд╛рдБ рдФрд░
рдпрд╣рд╛рдБ рдкрд░ рд╣реИ ред
рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдПрдХ рдХрд┐рдХ рдХреЗ рд╕рд╛рде,
рдорд╛рдЗрд▓рдбреЗрди рд╕реЗрдВрдЯреНрд░рд▓ рдореЗрдВ
рдИрд╡рд▓реНрдбрдХ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛
рдЧрдпрд╛ рдерд╛рдореИрдВрдиреЗ ORMLite рдХреЛ рджреЗрдЦрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИред рдЖрдорддреМрд░ рдкрд░ рд╣рдореЗрдВ рд╕рдм рдХреБрдЫ рдФрд░ рд╕рдм рдХреБрдЫ рд╕реАрдзреЗ рдЦреАрдВрдЪрдиреЗ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рд╡рд░реНрдЧ рдФрд░ рд╡рд┐рд╕реНрдХреА рд▓рдЧрднрдЧ рд╣рд░ рдЪреАрдЬ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВред
Android рдПрдиреЛрдЯреЗрд╢рди
рдореИрдВрдиреЗ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рджреЗрдЦрд╛ рдФрд░ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕реЗ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдмрджрд▓рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ - рдореБрдЭреЗ рдпрд╣ рдкрд╕рдВрдж рдЖрдпрд╛, рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рдирдЧреНрди рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред
рд╕рдмрд╕реЗ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЙрдкрдХрд░рдг, рдореБрдЦреНрдп рдмрд╛рдд
рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ рдпрд╛ рд╕рд┐рд░ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдирд╛ рд╣реИред
рдПрдХ рдЕрдЪреНрдЫрд╛ рдкреНрд▓рд╕ - рдЖрдк рдЗрд╕реЗ рд▓рдЧрднрдЧ рджрд░реНрдж рд░рд╣рд┐рдд рд░реВрдк рд╕реЗ рдХрд╛рдЯ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВрдиреЗ AQuery рдФрд░ рдбреИрдЧрд░ рдХреЛ рджреЗрдЦрд╛, рд▓реЗрдХрд┐рди IMHO Android рдПрдиреЛрдЯреЗрд╢рди - рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╣ рд╕рдм рд╣реИред
рдПрдХрдорд╛рддреНрд░ рдЛрдг рдХрднреА-рдХрднреА рддреНрд░реБрдЯрд┐ рдХреЗ рд▓рд┐рдП рджреЗрдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрддрд╛ рд╣реИ "рдпрд╣ рд╕рдВрдХрд▓рди рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИ?"ред
рдЖрдк рдСрдл рд╕рд╛рдЗрдЯ рдкрд░ рд╕рднреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рдореИрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рд╣рдореЗрд╢рд╛ рдПрдХ рд╕реНрдерд┐рд░ рд╡рд┐рдзрд┐ рд▓рд┐рдЦрддрд╛ рд╣реВрдВ рдЬреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдирд╛, рдПрдХ рдЯреБрдХрдбрд╝рд╛ рдмрдирд╛рдирд╛ред рдпрд╣ рд╕рднреА рдХреЛрдб рдХреЛ рдПрдХ рд╕реНрдерд╛рди рдкрд░ рдЕрд▓рдЧ-рдерд▓рдЧ рдХрд░ рджреЗрддрд╛ рд╣реИ рдФрд░ рдХреЛрдб рдореЗрдВ рдХреЛрдИ рднреА рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╡рд░реНрдЧ рд╣реИрдВ рдпрд╛ рдПрдХ рдореВрд▓ рдПрдХ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ
AlertDialogFragment рдЯреБрдХрдбрд╝рд╛ рдореЗрдВ рдПрдХ рд╡рд┐рдзрд┐ рд╣реЛрдЧреА
public static void show(FragmentActivity activity, DialogType type, int titleId, String msg, int positiveTitleId, OnDialogClickListener positiveListener) { DialogUtil.show(activity, DIALOG_NAME, AlertDialogFragment_.builder() .titleId(titleId) .errorMsg(msg) .positiveButtonTitleId(positiveTitleId) .dialogType(type).build() ).setOnClickListener(positiveListener); }
рдФрд░ рдХреЛрдб рдореЗрдВ рд╣рд░ рдЬрдЧрд╣ рдХреЙрд▓ рдХреА рддрд░рд╣ рд╣реЛрдЧрд╛
AlertDialogFragment.show(BaseActivity.this, DialogType.CONFIRM, R.string.some_title, getString(R.string.some_message), R.string.btn_edit, new OnDialogClickListener() {...............}
рдФрд░ рдХреЛрдИ рднреА
AlertDialogFragment_ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ
Android db-commons
рдЕрднреА рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдпрд╣ рдЕрджреНрднреБрдд рдХрд╛рдо рдорд┐рд▓рд╛ред рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рд▓реЛрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рд░ рдЬрдЧрд╣ рдФрд░ рд╣рд░ рдЬрдЧрд╣ рдХрд░рддреЗ рд╣реИрдВ, рдЖрдорддреМрд░ рдкрд░ рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо Cursor рд╣реЛрддрд╛ рд╣реИред рдЖрдк рд╣рдореЗрд╢рд╛ CursorAdapter рдХреЛ zozyuzat рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЛ рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЙрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдореЗрдВ рд╕реВрдЪреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд░реНрд╕рд░ рдХреЗ рдКрдкрд░ рдФрд░ рд╕реВрдЪреА рдХреЗ рд╕рд╛рде, рд╕рднреА рдХрд╛ рдкрд╕рдВрджреАрджрд╛ ArrayAdapterред
рдпрд╣рд╛рдБ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╕рд╣рдЬреАрд╡рди рд╣реИ - рдЖрдк рд╕реВрдЪреА рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдФрд░ ArrayAdapter рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдПрдХ рдХрд░реНрд╕рд░ рдФрд░ рдПрдХ рдПрдбрд╛рдкреНрдЯрд░ рдХрд░реНрд╕рд░ рд╣реИред рдЕрд╕рд▓реА "рд╕рдбрд╝рдХ рдЬрд╛рджреВ" :)
рд▓реЛрдЧ рдмрд╣реБрдд рдЖрд▓рд╕реА рдирд╣реАрдВ рдереЗ рдФрд░ рдЕрдВрджрд░ рдПрдХ рдЫреЛрдЯреЗ рдХреИрд╢ рдХреЗ рд╕рд╛рде рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ LazyList рд▓рд┐рдЦрд╛ рдерд╛, рд╕рдм рдХреБрдЫ рд╡реИрд╕рд╛ рд╣реА рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - Lruzache рдХреЗ рдЕрдВрджрд░ред
рдХрд░реНрд╕рд░ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрд░реНрд╕рд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ
рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди (
рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо ) рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЖрдкрдХреЛ рдПрдХ рд▓реЛрдбрд░ рдорд┐рд▓реЗрдЧрд╛ рдЬреЛ рдХрд┐ рдХрд░реНрд╕рд░ рдХреЛ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рд╕реВрдЪреА
return CursorLoaderBuilder.forUri(URI_ITEMS) .projection(ItemConverter.PROJECTION) .where(ItemTable.ACTIVE_STATUS + " = ?", 1) .where(ItemTable.DESCRIPTION + " like ?", "%" + searchText + "%") .transform(new ItemConverter()).build(getActivity());
рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ, рдХрднреА-рдХрднреА рдЖрдкрдХреЛ рдХрд░реНрд╕рд░ рдХреЛ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдореЗрдВ рдкрдврд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреБрдЫ рдЧрд┐рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рд▓реЛрдЧ рдПрдХ
рд░реИрдк рд╡рд┐рдзрд┐ рд░рдЦрддреЗ рд╣реИрдВред
public Loader<Integer> onCreateLoader(int i, Bundle bundle) { return CursorLoaderBuilder .forUri(ITEMS_URI) .projection("count(" + ItemTable.GUID + ")") .where(ItemTable.ACTIVE_STATUS + " = ?", 1) .where(ItemTable.STOCK_TRACKING + " = ?", 1) .where(ItemTable.TMP_AVAILABLE_QTY + " <= " + ItemTable.RECOMMENDED_QTY) .wrap(new Function<Cursor, Integer>() { @Override public Integer apply(Cursor c) { if (c.moveToFirst()) { return c.getInt(0); } return 0; } }).build(DashboardActivity.this); }
рдпрд╣рд╛рдБ рдПрдХ рд╕рд░рд▓ рддрд░реАрдХрд╛ рд╣реИред
рдпрд╣ рдмрд╣реБрдд рд╣реА рддреБрдЪреНрдЫ рдЙрджрд╛рд╣рд░рдг рд╣реИред рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рдЕрдзрд┐рдХ рдардВрдбреА рд╣реИрдВред
рдЙрд╕реА рд╕рдордп, рд░реИрдк рд╡рд┐рдзрд┐ рдХреЛ рдЕрднреА рднреА рджреВрд╕рд░реЗ рдзрд╛рдЧреЗ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЖрдк рдЕрднреА рднреА рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рдпрд╣ рдХрднреА-рдХрднреА рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИред
рдЕрдВрдд
рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпреВрдЖрдИ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓рд┐рдмрд╛рд╕ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЕрдзрд┐рдХрддрд░ рдШрдЯрдХ), рд▓реЗрдХрд┐рди рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдбрд┐рдЬрд╛рдЗрдирд░ рдХреА рдХрд▓реНрдкрдирд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ :)
рдареАрдХ рд╣реИ, рдпрд╣рд╛рдБ рдЧреНрд░реЗрдб рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдПрдХ рдРрд╕рд╛ рдЯреБрдХрдбрд╝рд╛ рд╣реИ рдЬреЛ рдЙрдкрдпреБрдХреНрдд рд╣реЛрдЧрд╛ (
рд╣рд╛рдВ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд▓рдЧрдЗрди рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдЗрд╕рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИ )ред
рдЕрд░реЗ рд╣рд╛рдБ - libs рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ
android-db-commons-0.1.6.jar рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
ext.androidAnnotationsVersion = '2.7.1'; configurations { apt } dependencies { compile fileTree(dir: 'libs', include: '*.jar') compile 'com.google.guava:guava:13.0.1' compile 'com.telly:groundy:1.3' apt 'com.telly:groundy-compiler:1.3' apt "com.googlecode.androidannotations:androidannotations:${androidAnnotationsVersion}" compile "com.googlecode.androidannotations:androidannotations-api:${androidAnnotationsVersion}" compile 'com.github.hamsterksu:android-annotatedsql-api:1.7.8' apt 'com.github.hamsterksu:android-annotatedsql-processor:1.7.8' } android.applicationVariants.all { variant -> aptOutput = file("${project.buildDir}/source/apt_generated/${variant.dirName}") variant.javaCompile.doFirst { aptOutput.mkdirs() variant.javaCompile.options.compilerArgs += [ '-processorpath', configurations.apt.getAsPath(), '-processor', 'com.annotatedsql.processor.provider.ProviderProcessor,com.annotatedsql.processor.sql.SQLProcessor,com.googlecode.androidannotations.AndroidAnnotationProcessor,com.telly.groundy.GroundyCodeGen', '-AandroidManifestFile=' + variant.processResources.manifestFile, '-s', aptOutput ] } }
рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╕рднреА рдХрд╛ рдзрдиреНрдпрд╡рд╛рджред