Fausia se fua fa'atatau ile Kotlin: fa'afefea ona aoga?
Matou te taʻu atu ia te oe le auala e fai ai se talosaga faigofie mo le fuafuaina o fautuaga ile Kotlin. E sili atu le saʻo, Kotlin 1.3.21, Android 4, Android Studio 3. O le tusiga o le a manaia, muamua lava, mo i latou o loʻo amataina la latou faigamalaga i le atinaʻeina o talosaga Android. E mafai ai ona e malamalama i le mea ma le auala e galue ai i totonu o le talosaga.
O lenei calculator o le a faʻaaogaina pe a e manaʻomia le fuafuaina o le aofaʻi o fautuaga mai se kamupani e filifili e faʻaalu se taimi i se faleaiga poʻo se cafe. O le mea moni, e le o tagata uma e tuʻuina atu se faʻamatalaga i tagata faʻatali; e sili atu lenei i tu ma aga i Sisifo, ae o le faagasologa o le atinaʻeina o sea talosaga e manaia i soʻo se tulaga.
Matou te faʻamanatu atu ia te oe:mo tagata faitau uma o le "Habr" - o se faʻaitiitiga o 10 rubles pe a lesitala i soʻo se vasega Skillbox e faʻaaoga ai le code promotional "Habr".
O le mea lea e foliga mai o loʻo faʻaogaina le talosaga:
E te ulufale i le pasene manaʻomia o le aofaʻi atoa, le aofaʻi o tagata auai i fonotaga, ma maua le iʻuga - o le aofaʻi o faʻamatalaga e tatau ona e alu.
Amata
O le fa'aoga atoatoa o le fa'aoga e pei o lenei:
Gaioiga muamua- la'uina o le faavae o galuega. Tatala i le Android Studio 3.0 pe mulimuli ane. Matou te fausia ma faʻalauiloa le poloketi ma vaʻai i se lanu paʻepaʻe. O loʻo lelei mea uma, e tatau ona i ai.
O gaioiga a tagata fa'aoga o lo'o tusia i totonu o le poloketi i le fa'asologa o taimi e fa'amanino ai mea uma. Ina ia matamata i ai, tatala View -> Tool Windows -> TODO.
Matou te suʻesuʻeina le poloketi ma tatala le lanu.xml e iloilo ai le lanu lanu. strings.xml o lo'o i ai fa'amaumauga o tusitusiga (saini), ma styles.xml o lo'o iai le tele o fa'ata'ita'iga vaitusi.
Atinae vaega tau
Tatala le activity_main.xml ma faʻaopopo le code i lalo ile LinearLayout (#1):
Talu ai o le galuega autu o le talosaga o le fuafuaina o tau taʻitasi mo tagata taʻitoʻatasi i se faʻapotopotoga faleaiga, o le costPerPersonTextView o loʻo faʻatinoina le matafaioi autu.
EditText faʻatapulaʻaina le faʻaoga i le laina e tasi, e tatau ona seti lenei parakalafa ile NumberDecimal inputType.
Matou te faʻalauiloaina le poloketi mo le suʻega ma faʻapipiʻi faʻamaufaʻailoga mo faʻaleagaina lautele (ipu gau, ipu, ma isi)
Atina'e o le vaega "Tagata ma Fautuaga".
Ina ia faʻaopoopo se filifiliga voluma pito, faʻapipiʻi le numera o loʻo i lalo i le laina LinearLayout fou (#4):
O lenei vaega o le code e mana'omia e fa'atatau sa'o le aofa'i o le pito. Ole tau ole tusitusiga ole 20. ImageButtons o loʻo tuʻuina atu i aikona i totonu o se pusa ma faʻatagaga tusitusi.
Kopi atoa le vaega ma fa'aopoopo mea nei (#5):
ImageButton id (toesePeopleButton, addPeopleButton)
DefaultText mo numeraOfPeopleTextView (e tatau ona 4).
I le taimi nei, pe a e faʻalauiloa le talosaga, o loʻo i ai se avanoa e faʻaopoopo ai le aofaʻi o pili, o loʻo galue foi faʻamau "Add / Subtract", ae leai se mea e tupu.
Faaopoopo Vaaiga
Tatala MainActivity.kt ma faʻaopopo i le galuega initViews (#6):
I le tulaga o ki ma ki, Kotlin faʻatulagaina mea uma e sili ona manaia! Fa'aopoopo le fa'ailoga i lalo i galuega fa'aopoopo uma ma fa'aitiitia
(#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()
}
}
O iinei e puipuia ai e le code le faʻaopoopoga o galuega ma tau maualuga (MAX_TIP & MAX_PEOPLE). E le gata i lea, o le tulafono e puipuia ai galuega faʻaititia ma tau maualalo (MIN_TIP & MIN_PEOPLE).
O lea ua matou faʻafesoʻotaʻi faʻamau ma tagata faʻalogologo i le galuega initViews (#13):
private fun initViews() {
...
addTipButton.setOnClickListener(this)
subtractTipButton.setOnClickListener(this)
addPeopleButton.setOnClickListener(this)
subtractPeopleButton.setOnClickListener(this)
//TODO #15: Bind EditText to TextWatcher
}
E mafai nei ona e fa'aopoopo le aofa'i o mea leaga, fa'amatalaga, ma le aofa'i o tagata e auai i fonotaga. Ia, o le taimi nei o le mea sili ona taua ...
Vaega fa'atatau o tau
O lenei code e fa'atatauina tau (#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)
}
Ia, o se galuega e taʻua e mafai ai ona amanaia le numera o tagata i totonu o le kamupani ma fuafua fautuaga (#15):
private fun incrementTip() {
…
}
private fun decrementTip() {
…
}
private fun incrementPeople() {
…
}
private fun decrementPeople() {
…
}
Sei o tatou tatala le talosaga. E foliga ma aoga tele. Ae e mafai ona sili atu.
Afai e te taumafai e aveese le aofaʻi o pili ona faʻaopoopoina lea o le numera o fautuaga poʻo uo, o le a paʻu le talosaga ona e leai se siaki mo le tau e leai se tau. E le gata i lea, afai e te taumafai e sui le aofaʻi o pili, o le a le toe faʻafouina tau.