Advertisement
Guest User

Untitled

a guest
Nov 19th, 2019
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.62 KB | None | 0 0
  1. package id.com.rumahcoding.sekolahku
  2.  
  3. import android.app.DatePickerDialog
  4. import android.content.Intent
  5. import androidx.appcompat.app.AppCompatActivity
  6. import android.os.Bundle
  7. import android.text.Editable
  8. import android.text.TextUtils
  9. import android.view.Menu
  10. import android.view.MenuItem
  11. import android.widget.DatePicker
  12. import android.widget.Toast
  13. import id.com.rumahcoding.sekolahku.model.Siswa
  14. import kotlinx.android.synthetic.main.activity_form.*
  15. import java.util.*
  16. import kotlin.collections.ArrayList
  17.  
  18. class FormActivity : AppCompatActivity(), DatePickerDialog.OnDateSetListener {
  19.  
  20. override fun onDateSet(view: DatePicker?, year: Int, month: Int, dayOfMonth: Int) {
  21.  
  22. val tgl = "${dayOfMonth} - ${month+1} - $year "
  23. inputTglLahir.setText(tgl)
  24.  
  25. }
  26.  
  27. override fun onCreate(savedInstanceState: Bundle?) {
  28. super.onCreate(savedInstanceState)
  29. setContentView(R.layout.activity_form)
  30.  
  31. supportActionBar?.setDisplayHomeAsUpEnabled(true)
  32.  
  33.  
  34. btnSimpan.setOnClickListener {
  35.  
  36. simpan()
  37.  
  38. }
  39.  
  40. inputTglLahir.setOnClickListener {
  41. showDialogChooseDate()
  42. }
  43. }
  44.  
  45. private fun showDialogChooseDate() {
  46. var calender = Calendar.getInstance()
  47. val datePick = DatePickerDialog(this, this,
  48. calender.get(Calendar.YEAR),
  49. calender.get(Calendar.MONTH),
  50. calender.get(Calendar.DAY_OF_MONTH))
  51. datePick.show()
  52. }
  53.  
  54. override fun onCreateOptionsMenu(menu: Menu?): Boolean {
  55. menuInflater.inflate(R.menu.save ,menu )
  56. return super.onCreateOptionsMenu(menu)
  57. }
  58.  
  59. override fun onOptionsItemSelected(item: MenuItem): Boolean {
  60. if (item.itemId == R.id.item_save){
  61. simpan()
  62. }
  63. return super.onOptionsItemSelected(item)
  64. }
  65.  
  66. fun validateNamaDepan() : Boolean{
  67. var namaDepan = inputNamaDepan.text.toString()
  68. if (namaDepan.isEmpty()){
  69. inputNamaDepan.setError("Required")
  70. inputNamaDepan.requestFocus()
  71. return false
  72. }
  73.  
  74. if (isContainSpecialChar(namaDepan)){
  75. inputNamaDepan.setError("Special not allowed")
  76. inputNamaDepan.requestFocus()
  77. return false
  78. }
  79.  
  80. return true
  81. }
  82.  
  83. private fun getSelectedGender(): String {
  84. var gender = ""
  85. if (rbPria.isChecked)
  86. {
  87. //lakukan ini
  88. gender = "Pria"
  89. }
  90. else {
  91. //kalau tidak lakukan yang ini
  92. gender = "Wanita"
  93. }
  94.  
  95. return gender
  96.  
  97. }
  98.  
  99.  
  100. fun isValidateAll(): Boolean{
  101. if (validateNamaDepan() &&
  102. validateNamaBelakang() &&
  103. validateNoHp() && validateAlamat()){
  104. return true
  105. }
  106.  
  107. return false
  108. }
  109.  
  110. fun validateNamaBelakang() : Boolean{
  111. var namaDepan = inputNamaBelakang.text.toString()
  112. if (namaDepan.isEmpty()){
  113. inputNamaBelakang.setError("Required")
  114. inputNamaBelakang.requestFocus()
  115. return false
  116. }
  117.  
  118. if (isContainSpecialChar(namaDepan)){
  119. inputNamaBelakang.setError("Special not allowed")
  120. inputNamaBelakang.requestFocus()
  121. return false
  122. }
  123.  
  124.  
  125. return true
  126. }
  127.  
  128. fun validateAlamat() : Boolean{
  129. var alamat= inputAlamat.text.toString()
  130. if (alamat.isEmpty()){
  131. inputAlamat.setError("Required")
  132. inputAlamat.requestFocus()
  133. return false
  134. }
  135.  
  136. return true
  137. }
  138.  
  139. fun validateNoHp() : Boolean{
  140. var nohp= inputNoHp.text.toString()
  141. if (nohp.isEmpty()){
  142. inputNoHp.setError("Required")
  143. inputNoHp.requestFocus()
  144. return false
  145. }
  146.  
  147. return true
  148. }
  149.  
  150. private fun getSelectedHobi(): String {
  151. var listHobi = ArrayList<String>()
  152.  
  153. if (cbMembaca.isChecked) listHobi.add("Membaca")
  154.  
  155. if (cbMenulis.isChecked) listHobi.add("Menulis")
  156. if (cbMenggambar.isChecked) listHobi.add("Menggambar")
  157.  
  158. var hobi = TextUtils.join(", ", listHobi)
  159. return hobi
  160.  
  161. }
  162.  
  163. fun isContainSpecialChar(text : String): Boolean {
  164. var forbid = "@!#$%&*^"
  165.  
  166.  
  167. for (i in forbid.indices){
  168.  
  169. if (text.contains(forbid[i])){
  170. return true
  171. }
  172. }
  173.  
  174. return false
  175.  
  176. }
  177.  
  178. fun simpan() {
  179.  
  180. if (!isValidateAll()){
  181. return
  182. }
  183.  
  184. var siswa = getInput()
  185. var dataSource = SiswaDataSource(this)
  186. dataSource.insertStudent(siswa)
  187.  
  188. Toast.makeText(this, "Berhasil menyimpan data",
  189. Toast.LENGTH_SHORT).show()
  190.  
  191. finish()
  192.  
  193.  
  194. }
  195.  
  196. private fun getInput(): Siswa {
  197.  
  198. var namaDepan = inputNamaDepan.text.toString()
  199. var namaBelakang = inputNamaBelakang.text.toString()
  200. var nohp = inputNoHp.text.toString()
  201. var alamat = inputAlamat.text.toString()
  202. var email = inputEmail.text.toString()
  203. var jenjang = spinner.selectedItem.toString()
  204. var tgl_lahir = inputTglLahir.text.toString()
  205. var hobi = getSelectedHobi()
  206.  
  207. var gender = getSelectedGender()
  208.  
  209. var siswa = Siswa()
  210. siswa.namad = namaDepan
  211. siswa.namab = namaBelakang
  212. siswa.alamat= alamat
  213. siswa.gender = gender
  214. siswa.jenjang= jenjang
  215. siswa.hobi = hobi
  216. siswa.noHp = nohp
  217. siswa.email = email
  218. siswa.tglLahir = tgl_lahir
  219.  
  220. return siswa
  221.  
  222. }
  223.  
  224. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement