我有一个抽屉导航,其中包含数量不确定的可切换项目。导航项是使用 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/