Android 选择后,清除/删除所有动态添加的弹出菜单项

Android 选择后,清除/删除所有动态添加的弹出菜单项,android,kotlin,popupmenu,android-popupwindow,Android,Kotlin,Popupmenu,Android Popupwindow,我在这里有搜索字段,我正在搜索一些值和绑定数组,从服务器到弹出菜单项,以显示弹出窗口,第一次正确绑定时,每当我选择项目弹出窗口将关闭并尝试搜索另一个值,然后以前添加的项目也绑定在同一弹出窗口中。如何删除所有项目,或者如何为每次搜索创建单个视图 popup = PopupMenu(this@AddReportActivity, search_diagnosis) popup?.menuInflater?.inflate(R.menu.test_menu, popup?.menu)

我在这里有搜索字段,我正在搜索一些值和绑定数组,从服务器到弹出菜单项,以显示弹出窗口,第一次正确绑定时,每当我选择项目弹出窗口将关闭并尝试搜索另一个值,然后以前添加的项目也绑定在同一弹出窗口中。如何删除所有项目,或者如何为每次搜索创建单个视图

    popup = PopupMenu(this@AddReportActivity, search_diagnosis)
    popup?.menuInflater?.inflate(R.menu.test_menu, popup?.menu)

  
    search_diagnosis.setActivated(true);
    search_diagnosis.setQueryHint("Search the diagnosis");
    search_diagnosis.onActionViewExpanded();
    search_diagnosis.setIconified(false);
    search_diagnosis.clearFocus();

    search_diagnosis.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
        override fun onQueryTextSubmit(query: String?): Boolean {
            query?.let { callSearch(it) }
            return false
        }

        override fun onQueryTextChange(newText: String?): Boolean {
            return false
        }

    })

private fun callSearch(it: String) {
    val diagnosisBody = DiagnosisBody(it)
    viewModel.getDiseaseList(diagnosisBody).observe(this, Observer {
        when (it) {
            is ResultWrapper.Success -> {
              
                it.value.data?.forEachIndexed { i, item ->
                        popup?.menu?.add(
                            R.id.diagnosis_menu_items_group,
                            i,
                            Menu.NONE,
                            item.name
                        );
                 }
                popup?.setOnMenuItemClickListener { item ->

                    search_diagnosis.setQuery(item.title, false);
                    popup?.menu?.clear()
                    it.value.data?.forEachIndexed { i, item ->
                         popup?.menu?.removeItem(i)
                
                    } 
                    popup?.menu?.removeGroup(R.id.diagnosis_menu_items_group)

                    this.invalidateOptionsMenu();
                    //popup = null
                    popup?.dismiss();

                    Toast.makeText(
                        this@AddReportActivity,
                        "You Clicked : " + item.title,

                        Toast.LENGTH_SHORT
                    ).show()
                    true
                }
                popup?.show()
            }
            is ResultWrapper.NetworkError -> {
                Log.v(TAG, "Network Error")
            }
            is ResultWrapper.GenericError -> {
                val errResp: ErrorResponse? = it.error
                Toast.makeText(this, errResp?.error, Toast.LENGTH_SHORT).show()
                Log.v(TAG, "Generic error->" + it.error.toString())
            }
        }
    })

}
我已尝试使用removeItem(I)和popup?.menu?.removeGroup(R.id.diagnosis\u menu\u items\u group)删除id,但未删除

   <?xml version="1.0" encoding="utf-8"?>
   <menu xmlns:android="http://schemas.android.com/apk/res/android">
   <group
    android:id="@+id/diagnosis_menu_items_group"
    android:checkableBehavior="all">

   </group>
  </menu>