wildanfuady

Untitled

Nov 20th, 2019
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.70 KB | None | 0 0
  1. package id.com.rumahcoding.sekolahku
  2.  
  3. import android.content.Intent
  4. import androidx.appcompat.app.AppCompatActivity
  5. import android.os.Bundle
  6. import android.view.ContextMenu
  7. import android.view.Menu
  8. import android.view.MenuItem
  9. import android.view.View
  10. import android.widget.AdapterView
  11. import id.com.rumahcoding.sekolahku.model.Siswa
  12. import kotlinx.android.synthetic.main.activity_list.*
  13. import java.nio.file.Files.delete
  14. import android.content.DialogInterface
  15. import androidx.core.content.ContextCompat.getSystemService
  16. import android.icu.lang.UCharacter.GraphemeClusterBreak.T
  17. import androidx.appcompat.app.AlertDialog
  18. import android.database.sqlite.SQLiteException
  19. import android.widget.Toast
  20.  
  21. class ListActivity : AppCompatActivity() {
  22.  
  23. val siswaDataSource : SiswaDataSource? = null
  24. lateinit var adapter : SiswaItemAdapter
  25. override fun onCreate(savedInstanceState: Bundle?) {
  26. super.onCreate(savedInstanceState)
  27. setContentView(R.layout.activity_list)
  28.  
  29. }
  30.  
  31. override fun onResume() {
  32. super.onResume()
  33.  
  34. val siswaDataSource = SiswaDataSource(this)
  35. var allSiswa = siswaDataSource.getAllData()
  36.  
  37. adapter = SiswaItemAdapter(this)
  38. adapter.addAll(allSiswa)
  39. adapter.notifyDataSetChanged()
  40. listView.adapter = adapter
  41.  
  42. listView.setOnItemClickListener (AdapterView.OnItemClickListener {
  43. parent, view, position, id ->
  44. viewDetailSiswa(position)
  45.  
  46. })
  47.  
  48. // TODO 3 IN DAY 4
  49. search_view.setOnQueryTextListener(object : androidx.appcompat.widget.
  50. SearchView.OnQueryTextListener {
  51.  
  52. override fun onQueryTextSubmit(query: String?): Boolean {
  53. return false
  54. }
  55.  
  56. override fun onQueryTextChange(newText: String?): Boolean {
  57. adapter.clear()
  58. var siswaDataSource = SiswaDataSource(this@ListActivity)
  59. var siswa = siswaDataSource.search(newText!!)
  60. adapter.addAll(siswa)
  61. adapter.notifyDataSetChanged()
  62. return false
  63.  
  64. }
  65.  
  66. })
  67.  
  68. //TODO 6 IN DAY 4 BAG 2
  69. registerForContextMenu(listView)
  70.  
  71. }
  72.  
  73. // TODO 6 IN DAY 4 BAG 1
  74. override fun onCreateContextMenu(
  75. menu: ContextMenu?,
  76. v: View?,
  77. menuInfo: ContextMenu.ContextMenuInfo?
  78. ) {
  79. menuInflater.inflate(R.menu.context_menu, menu)
  80. super.onCreateContextMenu(menu, v, menuInfo)
  81. }
  82.  
  83. // TODO 4 IN DAY 4 -> Set Edit and Delete
  84. override fun onContextItemSelected(item: MenuItem?): Boolean {
  85. val menuInfo = item?.menuInfo as AdapterView.AdapterContextMenuInfo
  86. val position = menuInfo.position
  87. val siswa = adapter.getItem(position)
  88.  
  89. // TODO When Delete, delete siswa --> Create method hapus(siswa)
  90. if (item.itemId==R.id.contextDelete){
  91. delete(siswa!!)
  92. }
  93.  
  94. //TODO 9 IN DAY 4
  95. // TODO When Edit, edit siswa --> Create method updateSiswa(siswa)
  96. if (item.itemId==R.id.contextUpdate){
  97. updateSiswa(siswa)
  98. }
  99.  
  100. return super.onContextItemSelected(item)
  101. }
  102.  
  103. override fun onCreateOptionsMenu(menu: Menu?): Boolean {
  104. menuInflater.inflate(R.menu.add, menu)
  105. return super.onCreateOptionsMenu(menu)
  106. }
  107.  
  108. override fun onOptionsItemSelected(item: MenuItem?): Boolean {
  109. if (item!!.itemId==R.id.itemAdd){
  110. startFormActivity()
  111.  
  112. }
  113. return super.onOptionsItemSelected(item)
  114. }
  115.  
  116. private fun startFormActivity() {
  117. var intent = Intent(this, FormActivity::class.java)
  118. startActivity(intent)
  119.  
  120.  
  121. }
  122.  
  123. private fun viewDetailSiswa(position: Int) {
  124.  
  125. // Toast.makeText(this, "$position" , Toast.LENGTH_SHORT).show()
  126.  
  127. var intent = Intent(this, DetailActivity::class.java)
  128. var siswa = adapter.getItem(position)
  129. intent.putExtra("id", siswa?.id)
  130. startActivity(intent)
  131. }
  132.  
  133. private fun updateSiswa(siswa: Siswa?) {
  134.  
  135. if (siswa==null){
  136. return
  137. }
  138.  
  139. val intent = Intent(this,FormActivity::class.java)
  140. intent.putExtra("action", "update")
  141. intent.putExtra("id", siswa?.id)
  142. // implement seriazable
  143. startActivity(intent)
  144.  
  145. }
  146.  
  147. // private fun hapus(siswa: Siswa?) {
  148. // if (siswa==null){
  149. // return
  150. // }
  151. // siswaDataSource?.deleteTask(siswa.id!!)
  152. // adapter.remove(siswa)
  153. // // TODO 7 IN DAY 4
  154. // adapter.notifyDataSetChanged()
  155. //
  156. // }
  157.  
  158. // fun showDeleteConfirmation(siswa: Siswa) {
  159. // val cancel = DialogInterface.OnClickListener { dialog, which -> dialog.cancel() }
  160. //
  161. //
  162. // val confirm = DialogInterface.OnClickListener { dialog, which -> delete(siswa) }
  163. //
  164. // val namaLengkap = siswa.namad + " " + siswa.namab
  165. // val aleBuilder = AlertDialog.Builder(this)
  166. // .setTitle("Hapus Data Siswa")
  167. // .setMessage("Yakin Hapus Data Siswa Dengan Nama : $namaLengkap")
  168. // .setPositiveButton("Ya", confirm)
  169. // .setNegativeButton("Tidak", cancel)
  170. // aleBuilder.show()
  171. // }
  172.  
  173. fun delete(siswa: Siswa) {
  174. val dataSource = SiswaDataSource(this)
  175. try {
  176. dataSource.delete(siswa)
  177. adapter.remove(siswa)
  178. adapter.notifyDataSetChanged()
  179. showToast("Berhasil Hapus Data")
  180. } catch (e: SQLiteException) {
  181. showToast("Gagal Hapus Data karena " + e.message)
  182. }
  183.  
  184. }
  185.  
  186. fun showToast(pesan: String) {
  187. Toast.makeText(this, pesan, Toast.LENGTH_SHORT).show()
  188. }
  189.  
  190. }
Advertisement
Add Comment
Please, Sign In to add comment