我正在尝试从一组片段中将一个项目添加到选项菜单中。
我创建了一个新的 MenuFragment
类并将其扩展为我希望包含菜单项的片段。这是代码:
爪哇:
public class MenuFragment extends Fragment {
MenuItem fav;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
fav = menu.add("add");
fav.setIcon(R.drawable.btn_star_big_off);
}
}
科特林:
class MenuFragment : Fragment {
lateinit var fav: MenuItem
override fun onCreate(savedInstanceState: Bundle) {
super.onCreate(savedInstanceState)
setHasOptionsMenu(true)
}
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
fav = menu.add("add");
fav.setIcon(R.drawable.btn_star_big_off);
}
}
由于某种原因, onCreateOptionsMenu
似乎没有运行。
原文由 misterbassman 发布,翻译遵循 CC BY-SA 4.0 许可协议
调用超级方法:
爪哇:
科特林:
将日志语句放入代码中以查看是否未调用该方法或您的代码是否未修改菜单。
还要确保您在 --- 中调用
setHasOptionsMenu(boolean)
onCreate(Bundle)
以通知片段它应该参与选项菜单处理。