import
androidx.appcompat.app.AppCompatActivity
import
android.os.Bundle
import
android.view.MenuItem
import
android.widget.PopupMenu
import
android.widget.Toast
import
androidx.core.view.get
import
androidx.recyclerview.widget.LinearLayoutManager
import
com.geeksforgeeks.rvadapterviewbinding.databinding.ActivityMainBinding
class
MainActivity : AppCompatActivity() {
private
var _binding: ActivityMainBinding? =
null
private
val binding get() = _binding!!
private
var languageList = ArrayList<Language>()
private
lateinit var rvAdapter: RvAdapter
override fun onCreate(savedInstanceState: Bundle?) {
super
.onCreate(savedInstanceState)
_binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.rvList.layoutManager = LinearLayoutManager(
this
)
rvAdapter = RvAdapter(languageList , object : RvAdapter.OptionsMenuClickListener{
override fun onOptionsMenuClicked(position: Int) {
performOptionsMenuClick(position)
}
})
binding.rvList.adapter = rvAdapter
val language1 = Language(
"Java"
,
"3 Year exp"
)
val language2 = Language(
"Kotlin"
,
"2 Year exp"
)
val language3 = Language(
"Python"
,
"1 Year exp"
)
val language4 = Language(
"CPP"
,
"5 Year exp"
)
val language5 = Language(
"PHP"
,
"No exp"
)
languageList.add(language1)
languageList.add(language2)
languageList.add(language3)
languageList.add(language4)
languageList.add(language5)
rvAdapter.notifyDataSetChanged()
}
private
fun performOptionsMenuClick(position: Int) {
val popupMenu = PopupMenu(
this
, binding.rvList[position].findViewById(R.id.textViewOptions))
popupMenu.inflate(R.menu.options_menu)
popupMenu.setOnMenuItemClickListener(object : PopupMenu.OnMenuItemClickListener{
override fun onMenuItemClick(item: MenuItem?): Boolean {
when(item?.itemId){
R.id.delete -> {
val tempLang = languageList[position]
languageList.remove(tempLang)
rvAdapter.notifyDataSetChanged()
return
true
}
R.id.item2 -> {
Toast.makeText(
this
@MainActivity
,
"Item 2 clicked"
, Toast.LENGTH_SHORT).show()
return
true
}
R.id.item3 -> {
Toast.makeText(
this
@MainActivity
,
"Item 3 clicked"
, Toast.LENGTH_SHORT).show()
return
true
}
}
return
false
}
})
popupMenu.show()
}
override fun onDestroy() {
super
.onDestroy()
_binding =
null
}
}