Nyiptakeun kalkulator tip di Kotlin: kumaha jalanna?
Kami nunjukkeun anjeun kumaha cara ngadamel aplikasi itungan tip saderhana di Kotlin. Janten langkung tepat, Kotlin 1.3.21, Android 4, Android Studio 3. Tulisan éta bakal pikaresepeun, mimitina, pikeun anu ngamimitian perjalanan dina ngamekarkeun aplikasi Android. Éta ngamungkinkeun anjeun ngartos naon sareng kumaha jalanna di jero aplikasi.
Kalkulator sapertos mangpaat nalika anjeun kedah ngitung jumlah tip ti perusahaan anu mutuskeun nyéépkeun waktos di réstoran atanapi kafe. Tangtosna, henteu sadayana sareng henteu salawasna nyéépkeun tèh pikeun palayan, ieu langkung ti tradisi Kulon, tapi prosés ngembangkeun aplikasi sapertos kitu pikaresepeun dina sagala hal.
Kami ngingetan:pikeun sakabéh pamiarsa "Habr" - diskon 10 rubles nalika enrolling dina sagala Tangtu Skillbox ngagunakeun "Habr" kode promosi.
Anjeun asupkeun persentase dipikahoyong tina jumlah total, jumlah pamilon dina rapat jeung meunang hasilna - jumlah tips nu kudu ditinggalkeun.
Mimiti
Antarbeungeut aplikasi lengkep sapertos kieu:
Aksi munggaran - undeuran basis proyék. Buka dina Android Studio 3.0 atanapi engké. Urang ngawangun sareng ngajalankeun proyék sareng ningali layar bodas. Sagalana rupa, sakumaha kuduna.
Lampah pamaké ditulis dina proyék dina urutan kronologis sangkan sagalana jelas. Pikeun ningali éta, buka View -> Tool Windows -> TODO.
Urang diajar proyek tur muka colors.xml pikeun evaluate palette warna. strings.xml ngandung data téks (captions), sarta styles.xml ngandung sababaraha témplat font.
Pangwangunan Bagian Biaya
Buka activity_main.xml sareng tambahkeun kodeu di handap kana LinearLayout (#1):
Sapotong kode ieu diperlukeun pikeun akurat ngitung jumlah tip. Nilai téks standar nyaéta 20. ImageButtons disadiakeun kalawan ikon dina folder kalawan idin nulis.
Salin sadayana bagian sareng tambahkeun ieu (#5):
ID ImageButton (tolakPeopleButton, addPeopleButton)
TextView id (numberOfPeopleStaticText, numberOfPeopleTextView)
DefaultText pikeun numberOfPeopleTextView (kedahna 4).
Ayeuna, nalika anjeun ngaluncurkeun aplikasi, aya kasempetan pikeun nambihan jumlah invoice, tombol "Tambahkeun / Ngurangan" ogé tiasa dianggo, tapi teu aya anu kajantenan.
Tambahkeun Views
Buka MainActivity.kt sareng tambahkeun ieu kana fungsi initViews (#6):
Dina hal tombol sareng saklar, Kotlin gaduh sadayana diatur pisan! Tambahkeun kode di handap pikeun sakabéh increment na decrement fungsi
(#9 –#12):
private fun incrementTip() {
if (tipPercent != MAX_TIP) {
tipPercent += TIP_INCREMENT_PERCENT
tipTextView.text = String.format("%d%%", tipPercent)
}
}
private fun decrementTip() {
if (tipPercent != MIN_TIP) {
tipPercent -= TIP_INCREMENT_PERCENT
tipTextView.text = String.format("%d%%", tipPercent)
}
}
private fun incrementPeople() {
if (numberOfPeople != MAX_PEOPLE) {
numberOfPeople += PEOPLE_INCREMENT_VALUE
numberOfPeopleTextView.text = numberOfPeople.toString()
}
}
private fun decrementPeople() {
if (numberOfPeople != MIN_PEOPLE) {
numberOfPeople -= PEOPLE_INCREMENT_VALUE
numberOfPeopleTextView.text = numberOfPeople.toString()
}
}
Di dieu kode ngajaga fungsi increment kalayan nilai maksimum (MAX_TIP & MAX_PEOPLE). Salaku tambahan, kode ngajaga fungsi pangurangan kalayan nilai minimum (MIN_TIP & MIN_PEOPLE).
Ayeuna urang ngahubungkeun tombol sareng pendengar dina fungsi initViews (#13):
private fun initViews() {
...
addTipButton.setOnClickListener(this)
subtractTipButton.setOnClickListener(this)
addPeopleButton.setOnClickListener(this)
subtractPeopleButton.setOnClickListener(this)
//TODO #15: Bind EditText to TextWatcher
}
Anjeun ayeuna tiasa nambihan total karusakan, tip, sareng jumlah pamilon rapat. Nya, ayeuna anu paling penting ...
bagian ongkos
Kode ieu ngitung biaya (#14):
private fun calculateExpense() {
val totalBill = billEditText.text.toString().toDouble()
val totalExpense = ((HUNDRED_PERCENT + tipPercent) / HUNDRED_PERCENT) * totalBill
val individualExpense = totalExpense / numberOfPeople
expensePerPersonTextView.text = String.format("$%.2f", individualExpense)
}
Nya, di dieu disebut fungsi anu ngamungkinkeun pikeun ngitung jumlah jalma di perusahaan sareng ngitung tip (#15):
private fun incrementTip() {
…
}
private fun decrementTip() {
…
}
private fun incrementPeople() {
…
}
private fun decrementPeople() {
…
}
Hayu urang ngajalankeun aplikasi. Sigana na jalan hébat. Tapi tiasa langkung saé.
Upami anjeun nyobian ngahapus jumlah tagihan teras ningkatkeun jumlah pitunjuk atanapi réréncangan, aplikasina bakal ngadat sabab teu acan aya cek pikeun biaya nol. Sumawona, upami anjeun nyobian ngarobih jumlah invoice, biayana moal diropéa.
Léngkah ahir
Tambahkeun TextWatcher (#16):
Kelas MainActivity: AppCompatActivity(), View.OnClickListener, TextWatcher {
Teras we lebetkeun pangdéngé billEditText (#17):
billEditText.addTextChangedListener(ieu)
Tambihan tambihan kodeu pikeun ngaéksekusi TextWatcher (#18):
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
if (!billEditText.text.isEmpty()) {
calculateExpense()
}
}
override fun afterTextChanged(s: Editable?) {}
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
Muhun, ayeuna sagalana jalan! Wilujeng, anjeun parantos nyerat "Kalkulator Tipping" anjeun sorangan dina Kotlin.