Android OnOptions ItemSelected上的ID不';不匹配
当调用父片段类上的方法时,“来自”菜单的id不同,但标题相同。我将xml中的标题从it菜单更改为确认,项目菜单就是从那里开始的。我已经更改了菜单ID,创建了另一个menu.xml,并且还在继续。 我的班级:Android OnOptions ItemSelected上的ID不';不匹配,android,android-fragments,kotlin,menu,Android,Android Fragments,Kotlin,Menu,当调用父片段类上的方法时,“来自”菜单的id不同,但标题相同。我将xml中的标题从it菜单更改为确认,项目菜单就是从那里开始的。我已经更改了菜单ID,创建了另一个menu.xml,并且还在继续。 我的班级: abstract class BaseFragment : Fragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState)
abstract class BaseFragment : Fragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setHasOptionsMenu(true)
}
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
super.onCreateOptionsMenu(menu, inflater)
inflater.inflate(R.menu.header_menu, menu)
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when(item.itemId) {
R.id.menu_company -> {
Log.i("Company", "SELECTED")
}
R.id.menu_user -> {
Log.i("USER", "SELECTED")
}
}
return super.onOptionsItemSelected(item)
}
}
我的菜单XML(header_menu.XML)
在调试模式下,我尝试比较菜单中的ID,结果如下:
item.itemid=2131230966
来自所选菜单公司R.id.menu\u公司=-1000255
。
我还试图使缓存失效并重新启动,但我发现了问题。首先我尝试清理项目并重建,然后更改菜单顺序。没有成功。我已经再次清理和重建,现在在不更改代码的情况下工作。我正在使用MacOs,但不知道是否有问题。这不是我第一次在MacOs上做同样的事情。windows上的同一项目始终有效。无论如何谢谢你的帮助。我发现了问题。首先我尝试清理项目并重建,然后更改菜单顺序。没有成功。我已经再次清理和重建,现在在不更改代码的情况下工作。我正在使用MacOs,但不知道是否有问题。这不是我第一次在MacOs上做同样的事情。windows上的同一项目始终有效。无论如何谢谢你的帮助
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/menu_user"
android:icon="@drawable/ic_action_troca_usuario"
android:title="User"
app:showAsAction="always" />
<item
android:id="@+id/menu_company"
android:title="Company"
android:icon="@drawable/ic_action_seleciona_empresa"
app:showAsAction="always"/>
</menu>
class ControleDeVendaFragment : BaseFragment() {
...
}