Obsługa danych wprowadzanych przez użytkownika
Proszę reagować na kliknięcia przycisków, odczytywać tekst z EditText, walidować dane wejściowe i przekazywać użytkownikowi informacje za pomocą komunikatów Toast.
Obsługa danych wprowadzanych przez użytkownika to bezpłatna lekcja Android Academy na CoddyKit. To lekcja 4 z 7. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Android Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Android Academy zawiera 7 lekcji w sumie.
Łączenie interfejsu użytkownika z kodem
Zbudowanie układu to dopiero pierwszy krok. Należy również:
- odczytywać tekst wpisany przez użytkownika w EditText
- reagować na kliknięcia przycisków
- aktualizować obiekty TextView nowymi wartościami
W tej lekcji pokażemy, jak połączyć elementy interfejsu za pomocą ViewBinding — nowoczesnego podejścia zapewniającego bezpieczeństwo typów.
Włączanie ViewBinding
Włącz ViewBinding w pliku app/build.gradle:
// app/build.gradle (inside android { })
android {
...
buildFeatures {
viewBinding = true
}
}Używanie ViewBinding
ViewBinding generuje klasę powiązania na podstawie układu XML. Jeśli układ nazywa się activity_main.xml, klasa będzie nosić nazwę ActivityMainBinding.
import androidx.appcompat.app.AppCompatActivity
import com.example.myapp.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
// Access views directly — no casting!
binding.tvTitle.text = "Hello!"
}
}Obsługa kliknięć przycisku
Ustaw detektor kliknięć dla dowolnego widoku za pomocą setOnClickListener. Przekaż lambdę, która zostanie uruchomiona po dotknięciu przez użytkownika:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
var count = 0
binding.btnIncrement.setOnClickListener {
count++
binding.tvCount.text = "Count: $count"
}
binding.btnReset.setOnClickListener {
count = 0
binding.tvCount.text = "Count: 0"
}
}Odczytywanie danych z EditText
Odczytaj tekst wpisany przez użytkownika za pomocą .text.toString():
binding.etName.text.toString()— zwraca bieżący tekst jako String- Zawsze usuwaj białe znaki za pomocą
.trim() - Sprawdzaj, czy tekst jest pusty: użyj
.isBlank()lub.isEmpty()
Przykład EditText + Button
Odczytaj dane i wyświetl je po kliknięciu przycisku:
binding.btnGreet.setOnClickListener {
val name = binding.etName.text.toString().trim()
if (name.isBlank()) {
binding.tvResult.text = "Please enter your name"
return@setOnClickListener
}
binding.tvResult.text = "Hello, $name!"
}Komunikaty Toast
Toast to mały komunikat w wyskakującym oknie, wyświetlany przez krótki czas u dołu ekranu. Używaj go do szybkiego przekazywania informacji zwrotnej:
Toast.LENGTH_SHORT— około 2 sekundToast.LENGTH_LONG— około 3,5 sekundy
Przykład Toast
Wyświetl Toast po kliknięciu przycisku:
import android.widget.Toast
binding.btnSave.setOnClickListener {
val input = binding.etEmail.text.toString().trim()
if (input.contains("@")) {
Toast.makeText(
this,
"Saved: $input",
Toast.LENGTH_SHORT
).show()
} else {
Toast.makeText(
this,
"Invalid email address",
Toast.LENGTH_LONG
).show()
}
}Typy danych wejściowych i klawiatura
Ustaw atrybut inputType w EditText, aby wskazać odpowiedni typ klawiatury:
textEmailAddress— wyświetla klawisz@numberDecimal— klawiatura numerycznatextPassword— ukrywa znakiphone— klawiatura do wpisywania numeru telefonu
Odpowiednie typy danych wejściowych znacznie poprawiają wygodę użytkowania.
Szybkie sprawdzenie
Jaka metoda odczytuje bieżący tekst z EditText jako String?
Podsumowanie: obsługa danych wprowadzanych przez użytkownika
Twoje aplikacje mogą już współdziałać z użytkownikami:
- Włącz ViewBinding, aby uzyskać bezpieczny typowo dostęp do widoków
setOnClickListener { }— reaguje na dotknięcia.text.toString().trim()— odczytuje dane z EditTextToast.makeText(...).show()— wyświetla szybkie komunikaty zwrotneinputType— wskazuje użytkownikom właściwy typ klawiatury
W następnej części przejdziesz między ekranami za pomocą obiektów Intent.
Często zadawane pytania
Czy lekcja „Obsługa danych wprowadzanych przez użytkownika” jest bezpłatna?
Tak — pełny tekst „Obsługa danych wprowadzanych przez użytkownika” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Android Academy, przejdź na CoddyKit PRO. Kurs Android Academy zawiera 7 lekcji w sumie.
Co nauczysz się w „Obsługa danych wprowadzanych przez użytkownika”?
Proszę reagować na kliknięcia przycisków, odczytywać tekst z EditText, walidować dane wejściowe i przekazywać użytkownikowi informacje za pomocą komunikatów Toast. Ćwiczysz Android Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Android Academy?
Nie wymagamy żadnego doświadczenia. Android Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 7.
Ile czasu zajmuje lekcja „Obsługa danych wprowadzanych przez użytkownika”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Android Academy?
Tak. Każda lekcja Android Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Struktura projektu i manifest
- Aktywności i cykl życia
- Układy i widoki
- Obsługa danych wprowadzanych przez użytkownika
- Intencje i nawigacja
- Fragmenty
- Uprawnienia i żądania w czasie działania