Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package id.com.rumahcoding.sekolahku
- import android.content.Intent
- import androidx.appcompat.app.AppCompatActivity
- import android.os.Bundle
- import android.view.ContextMenu
- import android.view.Menu
- import android.view.MenuItem
- import android.view.View
- import android.widget.AdapterView
- import id.com.rumahcoding.sekolahku.model.Siswa
- import kotlinx.android.synthetic.main.activity_list.*
- import java.nio.file.Files.delete
- import android.content.DialogInterface
- import androidx.core.content.ContextCompat.getSystemService
- import android.icu.lang.UCharacter.GraphemeClusterBreak.T
- import androidx.appcompat.app.AlertDialog
- import android.database.sqlite.SQLiteException
- import android.widget.Toast
- class ListActivity : AppCompatActivity() {
- val siswaDataSource : SiswaDataSource? = null
- lateinit var adapter : SiswaItemAdapter
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_list)
- }
- override fun onResume() {
- super.onResume()
- val siswaDataSource = SiswaDataSource(this)
- var allSiswa = siswaDataSource.getAllData()
- adapter = SiswaItemAdapter(this)
- adapter.addAll(allSiswa)
- adapter.notifyDataSetChanged()
- listView.adapter = adapter
- listView.setOnItemClickListener (AdapterView.OnItemClickListener {
- parent, view, position, id ->
- viewDetailSiswa(position)
- })
- // TODO 3 IN DAY 4
- search_view.setOnQueryTextListener(object : androidx.appcompat.widget.
- SearchView.OnQueryTextListener {
- override fun onQueryTextSubmit(query: String?): Boolean {
- return false
- }
- override fun onQueryTextChange(newText: String?): Boolean {
- adapter.clear()
- var siswaDataSource = SiswaDataSource(this@ListActivity)
- var siswa = siswaDataSource.search(newText!!)
- adapter.addAll(siswa)
- adapter.notifyDataSetChanged()
- return false
- }
- })
- //TODO 6 IN DAY 4 BAG 2
- registerForContextMenu(listView)
- }
- // TODO 6 IN DAY 4 BAG 1
- override fun onCreateContextMenu(
- menu: ContextMenu?,
- v: View?,
- menuInfo: ContextMenu.ContextMenuInfo?
- ) {
- menuInflater.inflate(R.menu.context_menu, menu)
- super.onCreateContextMenu(menu, v, menuInfo)
- }
- // TODO 4 IN DAY 4 -> Set Edit and Delete
- override fun onContextItemSelected(item: MenuItem?): Boolean {
- val menuInfo = item?.menuInfo as AdapterView.AdapterContextMenuInfo
- val position = menuInfo.position
- val siswa = adapter.getItem(position)
- // TODO When Delete, delete siswa --> Create method hapus(siswa)
- if (item.itemId==R.id.contextDelete){
- delete(siswa!!)
- }
- //TODO 9 IN DAY 4
- // TODO When Edit, edit siswa --> Create method updateSiswa(siswa)
- if (item.itemId==R.id.contextUpdate){
- updateSiswa(siswa)
- }
- return super.onContextItemSelected(item)
- }
- override fun onCreateOptionsMenu(menu: Menu?): Boolean {
- menuInflater.inflate(R.menu.add, menu)
- return super.onCreateOptionsMenu(menu)
- }
- override fun onOptionsItemSelected(item: MenuItem?): Boolean {
- if (item!!.itemId==R.id.itemAdd){
- startFormActivity()
- }
- return super.onOptionsItemSelected(item)
- }
- private fun startFormActivity() {
- var intent = Intent(this, FormActivity::class.java)
- startActivity(intent)
- }
- private fun viewDetailSiswa(position: Int) {
- // Toast.makeText(this, "$position" , Toast.LENGTH_SHORT).show()
- var intent = Intent(this, DetailActivity::class.java)
- var siswa = adapter.getItem(position)
- intent.putExtra("id", siswa?.id)
- startActivity(intent)
- }
- private fun updateSiswa(siswa: Siswa?) {
- if (siswa==null){
- return
- }
- val intent = Intent(this,FormActivity::class.java)
- intent.putExtra("action", "update")
- intent.putExtra("id", siswa?.id)
- // implement seriazable
- startActivity(intent)
- }
- // private fun hapus(siswa: Siswa?) {
- // if (siswa==null){
- // return
- // }
- // siswaDataSource?.deleteTask(siswa.id!!)
- // adapter.remove(siswa)
- // // TODO 7 IN DAY 4
- // adapter.notifyDataSetChanged()
- //
- // }
- // fun showDeleteConfirmation(siswa: Siswa) {
- // val cancel = DialogInterface.OnClickListener { dialog, which -> dialog.cancel() }
- //
- //
- // val confirm = DialogInterface.OnClickListener { dialog, which -> delete(siswa) }
- //
- // val namaLengkap = siswa.namad + " " + siswa.namab
- // val aleBuilder = AlertDialog.Builder(this)
- // .setTitle("Hapus Data Siswa")
- // .setMessage("Yakin Hapus Data Siswa Dengan Nama : $namaLengkap")
- // .setPositiveButton("Ya", confirm)
- // .setNegativeButton("Tidak", cancel)
- // aleBuilder.show()
- // }
- fun delete(siswa: Siswa) {
- val dataSource = SiswaDataSource(this)
- try {
- dataSource.delete(siswa)
- adapter.remove(siswa)
- adapter.notifyDataSetChanged()
- showToast("Berhasil Hapus Data")
- } catch (e: SQLiteException) {
- showToast("Gagal Hapus Data karena " + e.message)
- }
- }
- fun showToast(pesan: String) {
- Toast.makeText(this, pesan, Toast.LENGTH_SHORT).show()
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment