我使用 onNavigationItemSelected
在 NavigationView中显示所选项目。
我不想选择任何项目并将之前选择的项目保留为选中如果用户从NavigationView中选择SHARE或RATE ,我写了以下条件:
@Override
public boolean onNavigationItemSelected(MenuItem item) {
// update highlighted item in the navigation menu
mNavMenuItemId = item.getItemId();
if(mNavMenuItemId != R.id.nav_rate || mNavMenuItemId != R.id.nav_share)
item.setChecked(true);
}
但它给了我警告:
我有以下菜单项:
答案 0 :(得分:1)
可能你的意思是&&而不是||。
如果mNavMenuItemId!= R.id.nav_rate为false,则mNavMenuItemId == R.id.nav_rate。这是你的病情的第二部分计算的唯一情况。显然,如果是这样,那么mNavMenuItemId!= R.id.nav_share。
答案 1 :(得分:0)
因为它总是如此。有三种可能性:mNavMenuItemId是nav_rate,它的nav_share,或者它们都不是。如果是nav_rate,则第二次检查变为真。如果是nav_share,则第一个为真。如果不是,那么两者都是真的。没有办法让它变得虚假。
我认为你的意思是&&而不是||
答案 2 :(得分:0)
它的简单逻辑:你的If条件说“如果ID不是这个或不是那个,请在括号中执行代码”但这是一个始终为真的条件,因为如果ID与条件中的ID相同,它不能像另一个一样(!=),如果它不像它们两个,条件也是如此。所以你必须改变扩展器“||” - >或者“&&” - >和。我希望你明白,我想解释一下。如果您对该问题有任何其他问题,请询问。
来自德国的问候