gpt4 book ai didi

android - XML(菜单)资源的继承与扩展

转载 作者:可可西里 更新时间:2023-11-01 19:03:37 26 4
gpt4 key购买 nike

是否可以在android中轻松继承和扩展XML资源,特别是菜单。

例如。如果我的 base_menu.xml 是

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<item android:id="@+id/item_manual_input"
android:title="@string/manual_input/">

<item android:id="@+id/item_logoff"
android:title="@string/logoff"/>

</menu>

我想在其他地方(在另一个 Activity 中)重复使用这两个选项。而不是重复 base_menu 中项目的标签,我非常想为 inheriting_menu.xml 做这样的事情

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

<menu android:id="@id/base_menu"/>

<item android:id="@+id/extra_option"
android:title="@string/extra_option/>

</menu>

但我在任何文档中都没有看到与此类似的内容。是否支持这样的东西,或者我是否坚持使用 fragment 来限制各种 XML 资源的代码和 XML 复制? (我相信这会奏效,但我还没有使用 fragment )

最佳答案

对于菜单是不可能的,但对于布局是可行的。
请参阅 include 标记:https://developer.android.com/training/improving-layouts/reusing-layouts.html

对于菜单:
您可以通过扩充菜单 xml 文件并添加单个菜单项来解决代码问题:

@Override public boolean onCreateOptionsMenu(Menu menu)
{
getMenuInflater().inflate(R.menu.base, menu); // All menus in base.xml
getMenuInflater().inflate(R.menu.extras, menu); // base.xml + extras.xml
menu.add("More"); // base.xml + extras.xml + "More"
return true;
}

关于android - XML(菜单)资源的继承与扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8189267/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com