如何在 Android 中切换 XML 中的 Bool 值

How to Toggle the Bool value in XML in Android

在我的 android 应用程序中,我定义了一个布尔值:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <bool name="booleanvalue">false</bool>
</resources>

我用它来显示或隐藏我的菜单功能 menu.xml:

<item
    android:id="@+id/menu1"
    android:icon="@drawable/menu_on"
    android:showAsAction="ifRoom"
    android:title="@string/show_menu1"
    android:visible="@bool/booleanvalue"
    />

但是在不改变原值的情况下,是否可以得到menu.xml中布尔值的负值呢?

我想要它,因为有另一个菜单项在显示此菜单 1 时被隐藏。

您可以在 activity 中覆盖 onPrepareOptionsMenuonCreateOptionsMenu 并设置 menuItem.setVisible(true/false)

不能在XML文件中否定它,在资源文件中也不能。

但是当执行应该隐藏一个菜单并显示另一个菜单的操作时,您可以使用 getVisibility() and/or setVisibility() 方法以编程方式处理。

可见性切换机制示例:

if(menu1.getVisibility() == View.VISIBLE) menu1.setVisibility(View.GONE);
else menu1.setVisibility(View.VISIBLE);

if(menu2.getVisibility() == View.VISIBLE) menu2.setVisibility(View.GONE);
else menu2.setVisibility(View.VISIBLE);