70
Rozdział 2.
Klasa BeerExpert
Tworzenie własnej klasy Javy
Zgodnie z tym, co sygnalizowaliśmy już na samym początku rozdziału, nasza
aplikacja
Doradca piwny wyświetla rekomendowane gatunki piwa, używając
napisanej przez nas niestandardowej klasy języka Java. Jest to najzwyklejsza
klasa Javy, która nic nie wie o tym, że jest używana w aplikacji działającej
w systemie Android.
Specyfikacja własnej klasy Javy
Nasza klasa musi spełniać następujące wymagania:
Musi należeć do pakietu o nazwie
com.hfad.doradcapiwny
.
Musi mieć nazwę
BeerExpert
.
Ma udostępniać jedną metodę,
getBrands()
, pobierającą preferowany
kolor piwa (określony jako łańcuch znaków), i zwracać obiekt typu
List<String>
, listę zawierającą sugerowane gatunki piwa.
Implementacja i testowanie klasy
Klasy Javy mogą być niesłychanie złożone i korzystać z wywołań metod
implementujących skomplikowaną logikę aplikacji. Możesz bądź to napisać
swoją własną wersję tej klasy, bądź też skorzystać z naszej, bardzo wyszukanej
wersji, przedstawionej poniżej:
package com.hfad.doradcapiwny;
import java.util.ArrayList;
import java.util.List;
public class BeerExpert {
List<String> getBrands(String color) {
List<String> brands = new ArrayList<String>();
if (color.equals(”bursztynowe”)) {
brands.add(”Jack Amber”);
brands.add(”Red Moose”);
} else {
brands.add(”Jail Pale Ale”);
brands.add(”Gout Stout”);
}
return brands;
}
}
<Layout>
</Layout>
<resources>
</resources>
BeerExpert
Aktywność
Układ
strings.xml
Musimy napisać
klasę, której
aktywność będzie
mogła używać
do odnajdywania
gatunków piwa
odpowiadających
rodzajowi
wybranemu przez
użytkownika.
Dodaj do projektu klasę BeerExpert. Zaznacz 
pakiet com.hfad.doradcapiwny w katalogu app/src/
main/javai wybierz opcję File/New.../Java Class, 
następnie nadaj plikowi nazwę „BeerExpert” 
i upewnij się, że będzie on należał do  pakietu 
„com.hfad.doradcapiwny”. W ten sposób 
utworzysz plik BeerExpert.java.
app/src/main
BeerExpert.java
DoradcaPiwny
java
com.hfad.doradcapiwny
To zwyczajny kod napisany
w Javie, nie ma nic
wspólnego z Androidem.
Zrób to sam!
Tworzenie interaktywnych aplikacji
71
jesteś tutaj
Dodaj do aktywności wywołanie metody naszej klasy,
aby była wyświetlana FAKTYCZNA porada
W drugiej wersji kodu aktywności musimy rozszerzyć kod metody
onClickFindBeer()
o wywołanie metody klasy
BeerExpert
i zastosowanie zwróconych przez nią rekomendacji.
Te zmiany wiążą się z zastosowaniem zwyczajnego kodu napisanego w Javie. Możesz
spróbować samodzielnie napisać ten kod i wypróbować jego działanie, uruchamiając
aplikację, bądź też możesz odwrócić kartkę i przeanalizować nasze rozwiązanie. Jednak
zanim pokażemy zmiany, które należy wprowadzić w kodzie, spróbuj wykonać poniższe
ćwiczenie; pomoże Ci ono stworzyć niezbędny kod aktywności.
Rozszerz kod aktywności tak, by wywoływał metodę getBrands()
klasy BeerExpert i wyświetlał wyniki w widoku tekstowym.
package com.hfad.doradcapiwny;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Spinner;
import android.widget.TextView;
import java.util.List;
public class FindBeerActivity extends Activity {
private BeerExpert expert = new BeerExpert();
...
// Metoda wywoływana, gdy użytkownik kliknie przycisk
public void onClickFindBeer( View view) {
// Pobiera referencję komponentu TextView
TextView brands = (TextView) findViewById (R.id.brands);
// Pobiera referencję komponentu Spinner
Spinner color = (Spinner) findViewById(R.id.color);
// Pobiera wartość wybraną w komponencie Spinner
String beerType = String.valueOf(color.getSelectedItem() );
}
}
Ten wiersz kodu dodaliśmy za Ciebie.
Musisz użyć klasy
BeerExpert, by pobrać
rekomendowane gatunki piwa,
zatem dodaliśmy także ten
wiersz kodu.
Twoim zadaniem jest zaktualizowanie kodu
metody onClickFindBeer().
¨
Utworzenie projektu
¨
Aktualizacja układu
¨
Połączenie aktywności
¨
Implementacja logiki
Zaostrz ołówek
72
Rozdział 2.
Rozwiązanie zadania
Rozszerz kod aktywności tak, by wywoływał metodę getBrands()
klasy BeerExpert i wyświetlał wyniki w widoku tekstowym.
package com.hfad.doradcapiwny;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Spinner;
import android.widget.TextView;
import java.util.List;
public class FindBeerActivity extends Activity {
private BeerExpert expert = new BeerExpert();
...
// Metoda wywoływana, gdy użytkownik kliknie przycisk
public void onClickFindBeer( View view) {
// Pobiera referencję komponentu TextView
TextView brands = (TextView) findViewById (R.id.brands);
// Pobiera referencję komponentu Spinner
Spinner color = (Spinner) findViewById(R.id.color);
// Pobiera wartość wybraną w komponencie Spinner
String beerType = String.valueOf(color. getSelectedItem() );
}
}
// pobranie rekomendacji z klasy BeerExpert
List<String> brandsList = expert.getBrands(beerType);
StringBuilder brandsFormatted = new StringBuilder();
for (String brand : brandsList) {
brandsFormatted.append(brand).append( ‘\n’);
}
// wyświetlenie wyników
brands.setText(brandsFormatted);
Zastosowanie klasy BeerExpert wymaga jedynie zwyczajnego
kodu napisanego w Javie, dlatego nie musisz się przejmować,
jeśli Twoje rozwiązanie będzie wyglądać nieco inaczej niż nasze.
Pobiera listę
sugerowanych gatunków.
Konstruuje łańcuch znaków,
w którym zostaną zapisane
wartości z listy.
Wyświetla każdy
gatunek piwa
w osobnym wierszu.
Wyświetla wyniki
w widoku tekstowym.
Zaostrz ołówek
Rozwiązanie

Get Android Programowanie aplikacji. Rusz głową! Wydanie II now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.