java - 检查菜单项切换的已更改监听器

标签 java android onclicklistener

我有一个抽屉导航,其中包含数量不确定的可切换项目。导航项是使用 forloop 从对象列表中添加的。该对象包含一个标题字符串和一个用于将开关设置为启用或禁用的 boolean 值。它们必须是开关,没有复选框等...

我的问题是为每个项目设置一个 onCheckChangedListener 。

我的代码

 NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); 

 ArrayList<MyObject> myList; 

 for(int i = 0; i > myList.size()-1; i++){    

            MyObject item = myList.get(i);    

            String name = item.getName();    

            Boolean isDisabled = item.getDisabled();    

            navigationView.getMenu().add(name).setActionView(new Switch(this)).setChecked(isDisabled);    
}    

如何在单个交换机上设置监听器?*

 mySwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                // do something, 
            }
          });

我已经尝试过//我得到 ClassCastException

   Switch mySwitch = (Switch) navigationView.getMenu().add(name).setActionView(new Switch(this)).setChecked(isDisabled);

任何帮助将不胜感激。谢谢您

最佳答案

您应该能够通过以下方式填充菜单:

Switch mySwitch = new Switch(this);
mySwitch.setOnCheckedChangeListener(...);
navigationView.getMenu().add(name).setActionView(mySwitch).setChecked(isDisabled);    

关于java - 检查菜单项切换的已更改监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38274007/

相关文章:

Java JUnit - 是否可以确定是否抛出异常以及抛出哪个异常?

android - 是否可以访问 ViewPager 正在查看的当前 fragment ?

android - 如何使用mediacodec在android中使用软件编解码器

java - 复合 View 内按钮的 OnClick 监听器

Java 程序在一台计算机上运行,​​但在另一台计算机上运行

java - 从未调用过 AlertDialog setOnShowListener

java - 将修改后的xml保存到Android内部存储中

Android 自定义形状按钮

android - 如何在 Android 中访问菜单按钮 onLongClick?

java - 如何处理 SQL 查询 IN 子句中使用的可选参数