繁体   English   中英

选中菜单项切换的已更改侦听器

[英]On Check Changed Listener For Menu Item Switch

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

我的问题是为每个项目设置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);    

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM