These slides are part of the Android Development Course which I taught to 10 students, while participating in the IP Workshop Summer School 2011.
http://www.scoaladevara.info/2011/?page_id=39
Beyond the EU: DORA and NIS 2 Directive's Global Impact
[Curs Android] C07 - Liste (IPW 2011)
1. Android
Model View Controller, Observer,
liste, adaptoare si reciclare
Vlad PETRE
vlad@vladpetre.com
http://twitter.com/vladpetre88
http://facebook.com/vladpetre88
http://www.linkedin.com/in/vladpetre88
1 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
2. Model View Controller (I)
• Architectural Pattern
• Separa
– Interfata grafica
– Programul in sine
– Stocarea datelor
• Avantaje
– Programare pe componente
– Usor de intretinut
• Dezavantaje
– Poate fi lent
2 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
4. Model View Controller (III)
• Linie continua – asociere directa
• Linie intrerupta – asociere indirecta (ex: Observer)
4 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
6. Observer (I)
6 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
7. Observer (II)
• Design Pattern
• Separa
– Obiectul observat
– Observator
• Avantaje
– Programare pe componente
– Usor de intretinut
– Schema generalizata
• Dezavantaje
– Poate fi lent
7 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
8. Observer – Exemplu (I)
Abonarea la Gmail
8 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
9. Observer – Exemplu (II)
Notificarea
9 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
10. ListActivity
• Activitate specializata pentru o
lista
• Poate contine si alte componente
• ID-ul listei:
– android:id=“@android:id/list”
• Metode speciale:
– onListItemClick(…)
– setListAdapter(…)
10 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
11. Adaptor
11 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
12. ListView
• Container vertical
• Optimizat pentru miscare
• Implicit, avem componente
identice pe fiecare rand
• Rolul adaptorului:
– Genereaza aceste componente
• Evenimente:
– setOnItemClickListener(…)
– setOnItemLongClickListener(…)
12 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
13. Adaptor
• Poate fi predefinit:
– ArrayAdapter
• Sau customizat de programator:
– Prin implementarea ListAdapter
– Extinderea BaseAdapter
13 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
14. Varianta statica cu ArrayAdapter (I)
14 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
15. Varianta statica cu ArrayAdapter (II)
15 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
16. Varianta dinamica cu ArrayAdapter (I)
16 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
17. Varianta dinamica cu ArrayAdapter (II)
17 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
18. Concluzii implementare cu
ArrayAdapter
• ListView
– Contine o lista
– android:id=“@android:id/list”
• Elementele listei
– android.R.layout.simple_list_item_1
• Static
– Putem utiliza String[]
• Dinamic
– Putem utiliza ArrayList<String>
18 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
19. Sa incercam ceva mai complex
19 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
20. Liste cu elemente complexe
• Elementele sunt componente de tip container, ce
pot contine:
– TextView
– ImageView
–…
• Adaptor custom-made
– Prin implementarea ListAdapter
– Extinderea BaseAapter
20 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
21. Extinderea BaseAdapter (I)
• public View getView
(int position, View convertView, ViewGroup list);
• public int getCount ();
• public Object getItem(int position) ;
• public long getItemId(int position);
21 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
22. BaseAdapter (II)
Extinderea
22 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
25. BaseAdapter (V)
Extinderea
25 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
26. BaseAdapter (VI)
Extinderea
26 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
27. Reciclare
• Reutilizarea Obiectelor
• Evitarea crearii de obiecte
– new is bad for memory!
• Utilizam
– buffere
27 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
28. Optimizare (I)
28 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea