如何在工具栏android中制作togglebutton的功能

达里奥

我需要放置两个图标来在工具栏android中创建切换按钮功能,为此,我在菜单中创建了两个图标:

<item
   android:id="@+id/action_connect_off"
   android:icon="@drawable/enchufe_off"
   android:orderInCategory="103"
   android:title="Item"
   app:showAsAction="always" />

<item
   android:id="@+id/action_connect_on"
   android:icon="@drawable/enchufe_on"
   android:orderInCategory="103"
   android:title="Item"
   app:showAsAction="always"
   android:visible="false"/>

在我的MainActivity中,我有:

Boolean flagConection = false;

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();

    if (id == R.id.action_connect_off) {
        flagConection = true;
        return true;
    }

    if (id == R.id.action_connect_on) {
        flagConection = false;
        return true;
    }

   return super.onOptionsItemSelected(item);
}

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    MenuItem IconOFF = menu.findItem(R.id.action_connect_off);
    MenuItem IconON = menu.findItem(R.id.action_connect_on);

    if (flagConection){
        IconOFF.setVisible(false);
        IconON.setVisible(true);
   }
    else {
        IconOFF.setVisible(true);
        IconON.setVisible(false);
    }
    return super.onPrepareOptionsMenu(menu);
}

但我无法使其正常运行,每次我按下图标action_connect_off时,都会检测到该图标,但图标不会更改状态

我是

您需要通知系统选项菜单的状态需要更新。您修改时invalidateOptionsMenu()或在supportInvalidateOptionsMenu()任何时候添加呼叫flagConection

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();

    if (id == R.id.action_connect_off) {
        flagConection = true;
        invalidateOptionsMenu();
        return true;
    }

    if (id == R.id.action_connect_on) {
        flagConection = false;
        invalidateOptionsMenu();
        return true;
    }

   return super.onOptionsItemSelected(item);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在工具栏android中的标题上设置自定义字体

如何在Android工具测试中检查工具栏标题?

如何为工具栏制作圆角?

如何制作Primefaces动态工具栏

如何在Android工具栏上使用VectorDrawable?

如何在Android Studio IDE中恢复工具栏?

如何在Android工具栏上使用SearchView

如何在Android工具栏的SearchView小部件中删除白色下划线

Android:如何在工具栏的菜单图标上制作过渡动画?

如何在Android工具栏中添加按钮以搜索视图?

如何在Android的工具栏图标中显示通知数

android:如何在折叠的工具栏中添加带有文本的按钮

如何在Android中的工具栏上右对齐图像

如何在Android中制作折叠式工具栏?

Xamarin Forms:如何在Android中更改工具栏高度?

如何在Android中隐藏工具栏?

如何在Android Xamarin App中创建渐变工具栏

如何在Android的dankito / RichTextEditor中删除工具栏按钮

如何在Android Studio中禁用文件工具栏

如何在Android中更改折叠工具栏的文本颜色和折叠工具栏的后退按钮颜色

如何在Android Studio中导入工具栏工具?

如何为片段中的工具栏添加功能

如何在Android中设计工具栏

如何在Android中的棒棒糖设备中调整工具栏的高度

如何在Android中删除折叠工具栏

如何在Android工具栏下方启动抽屉布局?

标题栏进入工具栏中的 ToggleButton

如何在java中将工具栏标题设置为在android中居中

如何在 QMainWindow 中制作垂直工具栏