Hantera användarinmatning
Svara på knappklick, läs text från EditText, validera inmatning och ge användarna återkoppling med Toast-meddelanden.
Hantera användarinmatning är en gratis lektion i Android Academy på CoddyKit. Detta är lektion 4 av 7. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Android Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Android Academy innehåller totalt 7 lektioner.
Koppla användargränssnittet till koden
Att bygga en layout är bara det första steget. Du behöver också:
- Läsa det användaren skrev i en EditText
- Reagera på knapptryckningar
- Uppdatera TextViews med nya värden
I den här lektionen visas hur du kopplar ihop gränssnittselement med ViewBinding – det moderna, typsäkra tillvägagångssättet.
Aktivera ViewBinding
Aktivera ViewBinding i din app/build.gradle:
// app/build.gradle (inside android { })
android {
...
buildFeatures {
viewBinding = true
}
}Använda ViewBinding
ViewBinding genererar en binding-klass från din XML-layout. Om layouten heter activity_main.xml blir klassen 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!"
}
}Hantera knapptryckningar
Ställ in en klicklyssnare på valfri vy med setOnClickListener. Skicka med en lambda som körs när användaren trycker:
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"
}
}Läsa inmatning från EditText
Hämta texten som användaren skrev med .text.toString():
binding.etName.text.toString()– returnerar den aktuella texten som en String- Ta alltid bort blanksteg med
.trim() - Kontrollera om texten är tom med
.isBlank()eller.isEmpty()
Exempel med EditText + Button
Läs inmatning och visa den när en knapp trycks:
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!"
}Toast-meddelanden
En Toast är ett litet popup-meddelande som visas en kort stund längst ned på skärmen. Använd det för snabb återkoppling:
Toast.LENGTH_SHORT– cirka 2 sekunderToast.LENGTH_LONG– cirka 3,5 sekunder
Toast-exempel
Visa en Toast när en knapp trycks:
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()
}
}Inmatningstyper och tangentbord
Ange attributet inputType på EditText för att styra tangentbordet:
textEmailAddress– visar tangenten@numberDecimal– numeriskt tangentbordtextPassword– döljer teckenphone– knappsats för telefonnummer
Rätt inmatningstyper förbättrar användarupplevelsen avsevärt.
Snabbkontroll
Vilken metod läser den aktuella texten från en EditText som en String?
Sammanfattning: Hantera användarinmatning
Dina appar kan nu interagera med användare:
- Aktivera ViewBinding för typsäker åtkomst till vyer
setOnClickListener { }– reagera på tryck.text.toString().trim()– läs inmatning från EditTextToast.makeText(...).show()– visa snabba återkopplingsmeddelandeninputType– vägled användaren till rätt tangentbord
Nästa steg: navigera mellan skärmar med Intents.
Lär dig Kotlin med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 36
- Lektioner
- 152
Vanliga frågor
Är lektionen ”Hantera användarinmatning” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Android Academy, inklusive ”Hantera användarinmatning”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Android Academy innehåller totalt 7 lektioner.
Vad lär jag mig i ”Hantera användarinmatning”?
Svara på knappklick, läs text från EditText, validera inmatning och ge användarna återkoppling med Toast-meddelanden. Ni övar på Android Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Android Academy?
Du behöver inga förkunskaper. Utbildningen i Android Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 7.
Hur lång tid tar lektionen ”Hantera användarinmatning”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Android Academy-lektionen?
Ja. Varje Android Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Projektstruktur och manifest
- Aktiviteter och livscykel
- Layouter och vyer
- Hantera användarinmatning
- Intents och navigering
- Fragments
- Behörigheter och begäranden under körning