Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.wildanfuady.sekolahku
- import androidx.appcompat.app.AppCompatActivity
- import android.os.Bundle
- import android.text.TextUtils
- import android.view.Menu
- import android.view.MenuItem
- import android.widget.Toast
- import com.wildanfuady.sekolahku.models.Siswa
- import kotlinx.android.synthetic.main.activity_form.*
- class FormActivity : AppCompatActivity() {
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_form)
- btnSimpan.setOnClickListener {
- // Ketika button di klik, tampilkan toast
- simpan()
- }
- }
- // Fungsi untuk menggenerate menu
- override fun onCreateOptionsMenu(menu: Menu?): Boolean {
- menuInflater.inflate(R.menu.save, menu)
- return super.onCreateOptionsMenu(menu)
- }
- override fun onOptionsItemSelected(item: MenuItem): Boolean {
- if(item.itemId == R.id.save){
- simpan()
- }
- return super.onOptionsItemSelected(item)
- }
- // end fungsi generate menu
- fun getInput(): Siswa{
- var nama_depan = inputNamaDepan.text.toString()
- var nama_belakang = inputNamaBelakang.text.toString()
- var no_hp = inputNoHp.text.toString()
- // untuk melakukan pemilihan dari input lebih baik pakai function karena ada if
- var gender = getSelectedGender()
- var jenjang = spinnerJenjang.selectedItem.toString()
- var hobi = getSelectedHobi()
- var alamat = inputAlamat.text.toString()
- var siswaTemp = Siswa()
- siswaTemp.namad = nama_depan
- siswaTemp.namab = nama_belakang
- siswaTemp.gender = gender
- siswaTemp.alamat = alamat
- siswaTemp.jenjang = jenjang
- siswaTemp.noHp = no_hp
- siswaTemp.hobi = hobi
- return siswaTemp
- }
- fun simpan(){
- if (!validateAll()){
- // finish()
- return
- }
- // var siswaInput = getInput()
- // var dataSource = SiswaDataSource(this)
- // dataSource.insertStudent(siswaInput)
- return showToast("Data berhasil disimpan")
- }
- fun showToast(string: String){
- Toast.makeText(this, string, Toast.LENGTH_SHORT).show()
- }
- fun getSelectedGender(): String{
- var gender = ""
- if(rbPria.isChecked){
- gender = "Pria"
- } else {
- gender = "Wanita"
- }
- return gender
- }
- fun getSelectedHobi(): String{
- var listHobi = ArrayList<String>()
- // ["Membaca", "Membaca", "Menggambar"]
- if(cbMembaca.isChecked) listHobi.add("Membaca")
- if(cbMenulis.isChecked) listHobi.add("Menulis")
- if(cbMenggambar.isChecked) listHobi.add("Menggambar")
- return TextUtils.join(", ", listHobi)
- }
- fun validateNamaDepan():Boolean{
- var nama = inputNamaDepan.text.toString()
- //jika kosong kasih error
- if (nama.isEmpty()){
- inputNamaDepan.setError("Tidak Boleh Kosong")
- inputNamaDepan.requestFocus()
- return false
- }
- if (isContainSpecialChar(nama)){
- inputNamaDepan.setError("Tidak Boleh Ada Special Char")
- inputNamaDepan.requestFocus()
- return false
- }
- return true
- }
- fun validateNamaBelakang():Boolean{
- var nama = inputNamaBelakang.text.toString()
- //jika kosong kasih error
- if (nama.isEmpty()){
- inputNamaBelakang.setError("Tidak Boleh Kosong")
- inputNamaBelakang.requestFocus()
- return false
- }
- if (isContainSpecialChar(nama)){
- inputNamaBelakang.setError("Tidak Boleh Ada Special Char")
- inputNamaBelakang.requestFocus()
- return false
- }
- return true
- }
- fun validateNoHp():Boolean{
- var nama = inputNoHp.text.toString()
- //jika kosong kasih error
- if (nama.isEmpty()){
- inputNoHp.setError("Tidak Boleh Kosong")
- inputNoHp.requestFocus()
- return false
- }
- return true
- }
- fun validateAlamat():Boolean{
- var nama = inputAlamat.text.toString()
- //jika kosong kasih error
- if (nama.isEmpty()){
- inputAlamat.setError("Tidak Boleh Kosong")
- inputAlamat.requestFocus()
- return false
- }
- return true
- }
- // fungsi untuk mencegah karakter khusus
- private fun isContainSpecialChar(nama : String): Boolean {
- var forbid = "!@#$/?*&%^)(.,"
- for (i in forbid.indices){
- if (nama.contains(forbid[i])){
- return true
- }
- }
- return false
- }
- private fun validateAll() : Boolean{
- if (validateNamaDepan()
- && validateNamaBelakang()
- && validateNoHp()
- && validateAlamat()){
- return true
- }
- return false
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment