A 'cruthachadh àireamhair tip ann an Kotlin: ciamar a tha e ag obair?
Innsidh sinn dhut mar a chruthaicheas tu tagradh sìmplidh airson molaidhean obrachadh a-mach ann an Kotlin. Nas mionaidiche, Kotlin 1.3.21, Android 4, Android Studio 3. Bidh an artaigil inntinneach, an toiseach, dhaibhsan a tha a 'tòiseachadh air an turas ann an leasachadh aplacaid Android. Leigidh e leat tuigsinn dè agus ciamar a tha e ag obair taobh a-staigh an tagraidh.
Bidh an àireamhair seo feumail nuair a dh’ fheumas tu obrachadh a-mach na tha de mholaidhean bho chompanaidh a cho-dhùnas ùine a chaitheamh ann an taigh-bìdh no cafaidh. Gu dearbh, chan eil a h-uile duine an-còmhnaidh a 'fàgail tip don luchd-frithealaidh; tha seo nas motha de dhualchas an Iar, ach tha am pròiseas airson a leithid de thagradh a leasachadh inntinneach co-dhiù.
Tha sinn a ’cur nar cuimhne:airson a h-uile leughadair de "Habr" - lasachadh de 10 rubles nuair a chlàraicheas tu ann an cùrsa sam bith Skillbox a 'cleachdadh a' chòd adhartachaidh "Habr".
Seo cò ris a tha an tagradh coltach ann an gnìomh:
Bidh thu a’ dol a-steach don àireamh sa cheud den t-suim iomlan a tha thu ag iarraidh, an àireamh de chom-pàirtichean coinneimh, agus gheibh thu an toradh - an ìre de thip a bu chòir dhut fhàgail.
A 'tòiseachadh
Tha an eadar-aghaidh tagraidh iomlan a’ coimhead mar seo:
A' chiad ghnìomh - Luchdaich a-nuas am pròiseact air bunait. Fosgail e ann an Android Studio 3.0 no nas fhaide air adhart. Bidh sinn a’ togail agus a’ cur air bhog am pròiseact agus a’ faicinn sgrion geal. Tha a h-uile dad gu math, sin mar a bu chòir a bhith.
Tha gnìomhan luchd-cleachdaidh air an sgrìobhadh sa phròiseact ann an òrdugh àraid gus a h-uile dad a dhèanamh soilleir. Gus fhaicinn, fosgail View -> Inneal Windows -> TODO.
Bidh sinn a’ sgrùdadh a’ phròiseict agus a’ fosgladh colors.xml gus am paileas dath a mheasadh. Tha dàta teacsa (ainm-sgrìobhte) ann an strings.xml, agus tha grunn teamplaidean cruth-clò ann an styles.xml.
Leasachadh earrann cosgais
Fosgail activity_main.xml agus cuir an còd gu h-ìosal ris an LinearLayout (#1):
Leis gur e prìomh obair an tagraidh cosgaisean fa-leth obrachadh a-mach airson gach com-pàirtiche ann an cruinneachadh taigh-bìdh, is e costPerPersonTextView am prìomh àite.
Tha EditText a’ cuingealachadh an cuir a-steach gu aon loidhne, feumaidh am paramadair seo a bhith air a shuidheachadh gu NumberDecimal inputType.
Bidh sinn a 'cur air bhog am pròiseact airson an deuchainn agus a' dol a-steach do na crìochan airson milleadh coitcheann (cupannan briste, truinnsearan, msaa)
Leasachadh na h-earrainn “Daoine is Molaidhean”.
Gus taghadh meud tip a chuir ris, cuir a-steach an còd gu h-ìosal a-steach don roinn ùr LinearLayout (#4):
Tha an earrann seo den chòd riatanach gus tomhas ceart a dhèanamh air an t-suim tip. Is e an luach teacsa bunaiteach 20. Tha ìomhaighean air an toirt seachad le ImageButtons ann am pasgan le ceadan sgrìobhaidh.
Dèan lethbhreac den earrann gu tur agus cuir na leanas (#5):
ID ImageButton (toirt air falbhPeopleButton, cuirPeopleButton)
DefaultText airson numberOfPeopleTextView (feumaidh seo a bhith 4).
A-nis, nuair a chuireas tu an tagradh air bhog, tha cothrom ann suim an fhàirdeal a chuir ris, bidh na putanan “Cuir ris / Thoir air falbh” cuideachd ag obair, ach chan eil dad a ’tachairt fhathast.
A' cur Seallaidhean ris
Fosgail MainActivity.kt agus cuir seo ris a’ ghnìomh initViews (#6):
A thaobh putanan agus suidsichean, bidh Kotlin ag eagrachadh a h-uile dad gu math fionnar! Cuir an còd gu h-ìosal ris a h-uile gnìomh meudachaidh is lughdachadh
(#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()
}
}
An seo tha an còd a' dìon gnìomhan àrdachaidh le luachan as àirde (MAX_TIP & MAX_PEOPLE). A bharrachd air an sin, bidh an còd a’ dìon gnìomhan lughdachadh le luachan as ìsle (MIN_TIP & MIN_PEOPLE).
A-nis bidh sinn a’ ceangal nam putanan le luchd-èisteachd anns a’ ghnìomh initViews (#13):
private fun initViews() {
...
addTipButton.setOnClickListener(this)
subtractTipButton.setOnClickListener(this)
addPeopleButton.setOnClickListener(this)
subtractPeopleButton.setOnClickListener(this)
//TODO #15: Bind EditText to TextWatcher
}
Faodaidh tu a-nis milleadh iomlan, molaidhean, agus an àireamh de chom-pàirtichean coinneimh a chuir ris. Uill, a-nis an rud as cudromaiche ...
Earrann àireamhachadh cosgais
Bidh an còd seo a’ tomhas chosgaisean (#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)
}
Uill, an seo canar gnìomh a tha ga dhèanamh comasach aire a thoirt don àireamh de dhaoine sa chompanaidh agus obrachadh a-mach molaidhean (#15):
private fun incrementTip() {
…
}
private fun decrementTip() {
…
}
private fun incrementPeople() {
…
}
private fun decrementPeople() {
…
}
Leig leinn an tagradh a chuir air bhog. Tha e a’ coimhead agus ag obair gu math. Ach dh’ fhaodadh e a bhith nas fheàrr.
Ma dh’ fheuchas tu ri suim a’ bhile a thoirt air falbh agus an àireamh de mholaidhean no charaidean àrdachadh, tuitidh an tagradh leis nach eil seic ann fhathast airson an luach cosgais neoni. A bharrachd air an sin, ma dh’ fheuchas tu ri meud a’ bhile atharrachadh, cha tèid na cosgaisean ùrachadh.