当前位置: 首页 > 知识库问答 >
问题:

操作栏图标切换的良好实践

仲孙毅
2023-03-14

我有一个带有一些图标的菜单项的操作栏。我想要的是在两个可绘制对象之间切换。

这是我迄今为止所做的:

if(id == R.id.shift_day){
if(DoN==0){
item.setIcon(R.drawable.ic_menu_weather_day);
shift="shift night";
DoN=1;
onStart();
}
if(DoN==1){
item.setIcon(R.drawable.ic_menu_weather_night);
shift="shift day";
DoN=0;
onStart();
}
}

这并不太好,因为它改变了一次图标,再也不会回来了。

共有2个答案

单于楚
2023-03-14

您应该将DoN声明为静态变量,并将此DoN变量保存到SharedReferences,以记住我们稍后将使用的状态。重新启动程序时,从SharedReferences获取此变量,然后设置菜单的图标:)

赵选
2023-03-14

可能是在onStart()方法中设置DoN=0。尝试删除它,而不是将return设置为true;你的代码如果DoN=0,那么它首先设置DoN=1,然后匹配第二个块并进入其中,然后将DoN=0设置回。试试这个:



    if(id == R.id.shift_day){
        if(DoN==0){
            item.setIcon(R.drawable.ic_menu_weather_day);
            shift="shift night";
            DoN=1;
        }
        else if(DoN==1){
            item.setIcon(R.drawable.ic_menu_weather_night);
            shift="shift day";
            DoN=0;
        }
        return true;
    }

 类似资料:
  • 问题内容: 我目前正在为我的应用程序实现主题支持,其中一部分是更改操作栏应用程序图标。选择“ Holo Light”时,我想使用深色图标。除了设置动作栏应用程序图标的部分以外,其他所有操作均通过该方法完成。我要使用的代码是: 我得到的错误是“这里没有这样的参考”。应该如何正确完成? 顺便说一句,我是那么没有动作吧Sherlock的东西。 问题答案: 您将操作栏扔在那里。返回的实例,然后您需要调用该

  • 我有一个使用动作条和导航抽屉的有很多碎片的活动。它已启用“home as up”。我已经实现了正确的逻辑,只有顶层的片段显示动作条抽屉切换图标,其他的片段显示箭头。我通过以下方式实现了这一点: 现在旧的v4支持库ActionBarDrawerToggle被弃用。我已经切换到v7版本和新的以获得材质设计外观。之后,当抽屉打开时,“向上”箭头正确显示,但当执行上述代码时,它完全消失。 是支持库中的一个

  • 我已经设置了一个左右两侧的导航抽屉。除了一件事,一切都很好。 我希望我的另一个动作栏项目切换右边的抽屉菜单。正常的左边动作栏切换效果很好。谷歌Android应用程序通知面板是我希望动作模仿的。 下面是我用来设置右侧切换的代码(现在它在单击时强制关闭): 如果有人知道怎么做,如果你能让我知道就太好了! 谢谢

  • 我一直试图找到一些方法来删除图标/徽标从动作栏,但我找到的唯一东西,经过一个小时的搜索,Android的文档和Google是如何删除整个标题栏。那不是我想要的。只想从标题栏中移除图标/徽标。 有谁知道怎么做吗?我最好用XML来实现。

  • 你好 由于某些原因,该图标从未显示在操作栏上,我使用了ifRoom |与text的组合,但仍然没有显示。我也尝试过在风景中旋转。我正在使用genymotion 4.4.2 我正在膨胀菜单中的一个片段: 我在纵向和横向模式下尝试了硬件nexus5,但没有图标。 我也尝试过使用以下方法,但也不起作用: 非常感谢任何建议,

  • 描述 (Description) 单个选项卡可用于在具有自己的导航和布局的视图之间切换。 例子 (Example) 以下示例演示了Framework7中标签栏中交换机视图的使用 - <!DOCTYPE html> <html> <head> <meta name = "viewport" content = "width = device-width, initial-scale