Android studio 更改弹出菜单';以编程方式删除内容
我是安卓工作室的新手。 我已经为弹出菜单创建了一个布局,并在点击按钮后显示它。在菜单项中,有“添加项”将其他项添加到弹出菜单中,但当我简单地执行Android studio 更改弹出菜单';以编程方式删除内容,android-studio,android-layout,kotlin,popupmenu,Android Studio,Android Layout,Kotlin,Popupmenu,我是安卓工作室的新手。 我已经为弹出菜单创建了一个布局,并在点击按钮后显示它。在菜单项中,有“添加项”将其他项添加到弹出菜单中,但当我简单地执行popup.menu.add(“Title”)时,单击“添加项”只会更改当前菜单的外观,而不是菜单的布局本身,所以下次显示时,它不会更改 我的代码: private fun showPopup(v: View) { val popup = PopupMenu(myActivity, v) val inflater: MenuInflate
popup.menu.add(“Title”)
时,单击“添加项”只会更改当前菜单的外观,而不是菜单的布局本身,所以下次显示时,它不会更改
我的代码:
private fun showPopup(v: View) {
val popup = PopupMenu(myActivity, v)
val inflater: MenuInflater = popup.menuInflater
inflater.inflate(R.menu.group_menu, popup.menu)
popup.setOnMenuItemClickListener{ item: MenuItem? ->
when (item!!.itemId) {
R.id.add_item -> {
Toast.makeText(context, item.title, Toast.LENGTH_SHORT).show()
val dbHelper = DBHelper(myActivity)
popup.menu.add("Title")
}
}
true
}
popup.show()
}
XML:
所以我的问题是,在点击“add item”(添加项目)后,如何将项目添加到弹出菜单中以使其持续存在?每次调用showPopup(),您都会创建一个全新的弹出菜单界面,该界面可能永远不会再显示(您不会将对象存储在任何位置,因此您肯定不会重复使用该界面)。好的,我这样做了,但当我重新启动应用程序时,菜单中添加的内容消失了。我应该保存菜单的状态吗?是的。是的,你应该
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/add_item"
android:title="+" /></menu>