Android Studio, emulator i Twoja pierwsza aplikacja.
Oficjalne środowisko Google do Androida. Piszemy w Kotlinie. To samo środowisko będzie na egzaminie INF.04.
kod Kotlin + makiety XML
buduje z projektu plik APK
wirtualny telefon na ekranie
tu aplikacja mówi, co ją boli
Empty Views Activity — to wersja z makietami XML, jak na egzaminie.Trzy miejsca, które się liczą. Reszta plików na razie nas nie obchodzi.
logika ekranu — co się dzieje po kliknięciu
wygląd ekranu — jakie elementy i gdzie
dowód osobisty aplikacji: nazwa, ekrany, uprawnienia
res), logika osobno (kod). Kod sięga do zasobów przez klasę R, np. R.id.przycisk.otwiera się kreator projektu
Empty Views ActivityNIE „Empty Activity” — sprawdź dwa razy
Wizytowkabez polskich znaków i spacji; reszta pól — bez zmian
minimum SDK = najstarszy Android, na którym app zadziała
pasek postępu na dole okna; za pierwszym razem to trwa
Po kliknięciu Run dzieje się to:
Device Manager → Create Virtual Device
Opcje programisty → Debugowanie USB.Otwórz res/layout/activity_main.xml (zakładka Code). Usuń wszystko i napisz:
<LinearLayout <- pojemnik na elementy xmlns:android="http://schemas.android..." <- wklej z podpowiedzi — nie ruszamy android:layout_width="match_parent" <- szerokość: cały ekran android:layout_height="match_parent" <- wysokość: cały ekran android:orientation="vertical" <- elementy jeden POD drugim android:padding="16dp" <- odstęp od krawędzi ekranu android:gravity="center_horizontal"> <- wyśrodkuj zawartość ... tu za chwilę trafią TextView i Button ... </LinearLayout> <- zamknięcie pojemnika
Wstaw do środka pojemnika (między > a </LinearLayout>):
<TextView <- napis na ekranie android:id="@+id/napis" <- imię elementu — po nim znajdzie go kod android:layout_width="wrap_content" <- szerokość: tyle, ile zajmuje tekst android:layout_height="wrap_content" <- wysokość: tyle, ile trzeba android:text="Witaj!" <- wyświetlany tekst android:textSize="24sp" /> <- rozmiar czcionki (sp = jednostka czcionek) <Button <- przycisk android:id="@+id/przycisk" <- imię przycisku android:layout_width="wrap_content" android:layout_height="wrap_content" <- rozmiar dopasowany do napisu android:text="Kliknij mnie" /> <- napis NA przycisku
Otwórz MainActivity.kt — ten kod już tam jest, wygenerował go kreator. Czytamy go:
class MainActivity : AppCompatActivity() { <- klasa naszego ekranu (Activity = ekran) override fun onCreate(saved: Bundle?) { <- uruchamia się przy starcie ekranu super.onCreate(saved) <- standardowy start — zostawiamy setContentView(R.layout.activity_main) <- "pokaż makietę activity_main.xml" // tu dopiszemy nasz kod (część 2) } }
R to automatyczny spis wszystkiego z folderu res. R.layout.activity_main = nasza makieta, R.id.przycisk = element o tym id.Dopisz wewnątrz onCreate, pod setContentView:
val przycisk = findViewById<Button>(R.id.przycisk) <- znajdź przycisk z XML po jego id val napis = findViewById<TextView>(R.id.napis) <- znajdź napis po id przycisk.setOnClickListener { <- "gdy ktoś kliknie przycisk, zrób:" napis.text = "Kliknięto!" <- zmień tekst napisu Toast.makeText(this, "Cześć!", <- dymek z komunikatem... Toast.LENGTH_SHORT).show() <- ...krótki i pokaż go } <- koniec bloku "po kliknięciu"
Button / TextView / Toast? Najedź myszką i Alt+Enter → Import. Android Studio doda brakujący import sama.| Pojęcie | Co to znaczy |
|---|---|
| Activity | jeden ekran aplikacji |
| layout | plik XML z wyglądem ekranu |
| id | imię elementu — łączy XML z kodem |
| emulator (AVD) | wirtualny telefon |
| APK | plik instalacyjny aplikacji |
| Gradle | narzędzie budujące APK z projektu |
| Logcat | dziennik zdarzeń i błędów aplikacji |
| Toast | dymek z krótkim komunikatem |
Aplikacja „Wizytówka” — do pokazania na koniec zajęć.
TextView z Twoim imieniemTextView z krótkim opisem (kim jesteś, co lubisz)Button „Przywitaj się”Dodaj drugi przycisk, który przywraca pierwotny opis. A licznik kliknięć w tekście przycisku?
| Objaw | Co robisz |
|---|---|
| Gradle sync failed | sprawdź internet, potem File → Sync Project with Gradle Files |
| czerwone R w kodzie | literówka w id albo w nazwie pliku — porównaj z XML |
| aplikacja zamyka się po starcie | otwórz Logcat i znajdź pierwszą czerwoną linię ze swoim kodem |
| emulator zamarza | nie uruchamiaj drugiego! poczekaj albo zgłoś się po kabel USB |
wygląd i logika osobno. Łączy je id elementu.
jedno kliknięcie, trzy kroki pod spodem.
błędów szukamy w Logcat.
EditText, RadioButton, CheckBox i pierwszy kalkulator.