gurumutant icon

CodeLab 1 - Latihan Activity dan Input Events

gurumutant | PRO | 05/29/22 08:08:53 AM UTC | 0 ⭐ | 12544 👁️ | Never ⏰ | []
Kotlin |

3.18 KB

|

None

|

0 👍

/

0 👎

package com.rplcoders.android.latihanactivity
 
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
 
class MainActivity : AppCompatActivity(), View.OnClickListener {
    // pendeklarasian variabel penampung objek dari view components yang akan digunakan
    private lateinit var edtWidth: EditText
    private lateinit var edtHeight: EditText
    private lateinit var edtLength: EditText
    private lateinit var btnCalculate: Button
    private lateinit var tvResult: TextView
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        // pengambilan object EditText, Button, dan TextView untuk dioperasikan di codingan
        edtWidth = findViewById(R.id.edt_width)
        edtHeight = findViewById(R.id.edt_height)
        edtLength = findViewById(R.id.edt_length)
        btnCalculate = findViewById(R.id.btn_calculate)
        tvResult = findViewById(R.id.tv_result)
        // mengeset OnClickListener untuk tombol Hitung
        btnCalculate.setOnClickListener(this)
        // jika ada state yang tersimpan, ambil teks untuk tvResult dari situ
        if (savedInstanceState != null) {
            tvResult.text = savedInstanceState.getString(STATE_RESULT)
        }
    }
 
    override fun onClick(v: View) {
        // mengecek apakah tombol yang diklik adalah Button dengan ID btn_calculate
        if (v.id == R.id.btn_calculate) {
            // ambil nilai dari EditText, lewatkan fungsi trim
            val inputLength = edtLength.text.toString().trim()
            val inputWidth = edtWidth.text.toString().trim()
            val inputHeight = edtHeight.text.toString().trim()
            // inisialisasi variabel pengecekan validitas inputan
            var isEmptyFields = false
            // pengecekan kosong tidaknya inputan
            if (inputLength.isEmpty()) {
                isEmptyFields = true
                edtLength.error = "Panjang tidak boleh kosong"
            }
            if (inputWidth.isEmpty()) {
                isEmptyFields = true
                edtWidth.error = "Lebar tidak boleh kosong"
            }
            if (inputHeight.isEmpty()) {
                isEmptyFields = true
                edtHeight.error = "Tinggi tidak boleh kosong"
            }
            // jika inputan valid semua, baru lakukan kalkulasi dan menampilkan ke TextView
            if (!isEmptyFields) {
                val volume = inputLength.toDouble() * inputWidth.toDouble() * inputHeight.toDouble()
                tvResult.text = volume.toString()
            }
        }
    }
    // pembuatan companion object untuk membantu mendeklarasikan konstanta STATE_RESULT
    companion object {
        private const val STATE_RESULT =  "state_result"
    }
    // function override untuk menyimpan state saat terjadi pemuatan ulang Activity
    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)
        outState.putString(STATE_RESULT, tvResult.text.toString())
    }
}

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎