Prośba o wytłumaczenie składni Java Android

0

Dzień dobry wszystkim,

Mając tylko podstawy z Javy próbuję obecnie załapać podstawy Androida. Nie wiem czy to składnia zwykłej Javy, czy specyficzna dla Androida, ale nijak nie rozumiem jak ten fragment działa. Może ktoś mógłby mi pomóc i wytłumaczyć składnię tu zastosowaną? Będę ogromnie wdzięczna!

protected void onCreate(Bundle icicle){

/*...*/

confirmButton.setOnClickListener(new View.OnClickListener() {
		public void onClick(View arg0){
			setResult(RESULT_OK);
			finish();
		}
	});
}

Z góry bardzo dziękuję za pomoc!
Mal

1

wywołujesz metodę setOnClickListener na obiekcie confirmButton przekazując jako argument metody nowy obiekty klasy (zagnieżdżonej/wewnętrznej) View.OnClickListener i deklarując w miejscu (bo jest to obiekt anonimowy) metodę onClick tegoż przekazanego, nowo-utworzonego obiektu. I tyle :p

1

Aby zrozumiec musisz rozumiec co to jest:

  1. observer pattern
  2. callback
  3. statyczna klasa zagniezdzona
  4. anonimowa klasa

W skrocie: tworzona jest tutaj anonimowa klasa oraz jednoczesnie instancja interfejsu View.OnClickListener (OnClickListener jest statyczna klasa zagniezdzona w klasie View), ktorej metoda onClick bedzie wywolywana gdy confirmButton zostanie klikniety.

0
Malvinka napisał(a):

Dzień dobry wszystkim,

Mając tylko podstawy z Javy próbuję obecnie załapać podstawy Androida.

Trudno tutaj mówić o podstawach Javy, to są bardziej podstawy podstaw (zero złośliwości tutaj). Sam fragment mówi o tym, że aktywność po naciśnięciu przycisku zamknie się z podanym ustawionym rezultatem i rezultat ten będzie można przechwycić w aktywności, która tą aktywność hostowała (za pomocą metody onActivityResult). Na koniec dobra rada: przerwij na razie naukę androida i zajmij się np. przez miesiąc (albo dwa) javą, ponieważ nic dobrego z tego nie wyniknie na chwilę obecną. Android jest bardzo skomplikowaną platformą i w zasadzie na każdym kroku trzeba wykazywać się dobrą znajomością javy (często również wzorców projektowych).

0

Dziękuję Wam ślicznie zarówno za odpowiedzi jak i za rady :)

Pozdrawiam!
Mal

1 użytkowników online, w tym zalogowanych: 0, gości: 1