Witaj Sieciowy Szperaczu :)
Wiedz, że nie znajdziesz tutaj kodów źródłowych ani poradników jak kodzić dobre i przemyślane aplikacje na Androida.

Za to zobaczysz moje wolne przemyślenia, porady i pomysły. Dowiesz się też z czym miałem problemy, które napotkałem podczas swojej przygody z 'Andkiem' oraz, co ważniejsze, ich rozwiązania.

piątek, 24 czerwca 2011

Androidowa Adaptacja, czyli Adapter i getView

'Ciekawe' pomyślałem, bo z jednej strony to dobrze, a z drugiej źle. Tak to już jest, wszystko ma plusy i minusy. No ale 'osochozi'?

Dzisiaj robiłem sobie prostą listę, którą podpiąłem do widoku jako ListView. Oczywiście nie chciałem aby wyglądała standardowo, dlatego musiałem stworzyć własny Adapter, a dokładniej ArrayAdapter. Miała to być lista z ikonkami po boku:

1
public class MyIconAdapter extends ArrayAdapter<Object>

Potem należało nadpisać metodę getView i wpisać dowolny kod.

1
2
@Override
public View getView(int position, View convertView, ViewGroup parent)

I w tym momencie, nareszcie, dochodzimy do meritum tego posta :)
Jeśli lista jest zbyt długa, żeby wyświetlić ją na ekranie to podczas przesuwania ekranu za każdym razem, dla kolejnych elementów wywoływana jest metoda getView! Czyli każdy element jest 'generowany' na bieżąco, a po starcie aplikacji wczytywane są tylko elementy widoczne.

Może parę słów dlaczego? Otóż programiści Androida w ten sposób wyłuskują ograniczenie zjadania pamięci, niepotrzebnych obliczeń, a co za tym idzie, również mniejsze zużycie baterii. Dobry pomysł! Chociaż przy listach większych gabarytów potrafi przymulić ;)

2 komentarze:

  1. Fakt, działa to nawet całkiem całkiem na moim słabiutkim Wildfire.

    OdpowiedzUsuń
  2. Wildfire nie jest stosunkowo słaby. Ale takie rozwiązanie jest dobre, ponieważ pomaga np. oszczędzać liczbę obliczeń procesora 'na starcie', a co za tym idzie - baterię - jedna z najwięszych zmór programistów :)

    OdpowiedzUsuń