我为导航视图栏动态创建了一个菜单项,并将其与switchcompat小部件相关联。我想将切换按钮绑定到菜单项,以便单击该开关将调用与菜单项单击相同的方法,这对于我来说当前没有发生。可以这样做,如果是的话,如何?
非常感谢提前。
final MenuItem scanMenuItem = navMenu.getItem(parentMenuItem)
.getSubMenu().add(childMenuItem,itemId,orderId,menuTitle)
.setIcon(R.drawable.ic_menu_cast)
.setActionView(R.layout.compat_switch_button);
...
...
compatSwitch.setOnCheckedChangeListener(MainActivity.this);
...
...
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
?? How can I get menuItem the switch button is associated with in this block??
}
答案 0 :(得分:0)
在onCheckedChanged()方法
中尝试getId()函数if(buttonView.getId()==R.id.menuid)
{
//do stuff here
}
答案 1 :(得分:0)
虽然我不知道这是否是解决问题的最佳方法,但我通过使用名为setTag()&的方法来实现它。 switchCompat的getTag()。
compactSwitch.setTag(item.getItemId()); --> the menu item id.
compactSwitch..setOnCheckedChangeListener(MainActivity.this);
...
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
int viewId = buttonView.getId();
switch(viewId){
case R.id.switch_compat:
final int anInt = Integer.parseInt(buttonView.getTag().toString()); --> fetch the menuItem Id.
break;
}
}