我可以通过导航抽屉从Activity1导航到Activity2。
但是在activity2按下后退按钮时,该选项仍然会突出显示。
活动1中的我的代码如下
SELECT SUM(weightage)
FROM r_job_skill
WHERE id_job = ".$jobID."
AND gdskill = 1;
活动2中没有代码。
我可以知道如何删除突出显示?
答案 0 :(得分:5)
我发现如果您不需要使用突出显示功能,只需在onNavigationItemSelected的末尾返回false。
} else if (id == R.id.nav_share) {
} else if (id == R.id.nav_send) {
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return false;
}
答案 1 :(得分:3)
要取消选中项目点击,您必须在已检查项目上传递false
:
public boolean onNavigationItemSelected(MenuItem Item) //will consider to keep this in lower case - item
{
int id = item.getItemId();
if(id == R.id.activity2)
{
Intent goPage2 = new Intent(activity1.this, activity2.class);
startActivity(goPage2);
Item.setChecked(false); //pass false to uncheck
}
}
答案 2 :(得分:0)
尝试:menuItem.setChecked(true)
答案 3 :(得分:0)
当然它会保持突出显示("选择"更专业),因为当您从Navigation Drawer
选择项目时,会创建下一个活动,并且Navigation Drawer
存在的活动会获得暂停并停止不被破坏(onPause()
然后onStop()
被调用)并保留在内存中,直到您的设备有足够的内存。因此,进入下一个活动并不会消耗太多内存来迫使android破坏以前的活动。您可以做的是完全破坏您的导航抽屉活动,或者您可以通过在第一个活动的onRestart()
方法中为所有项目编写此代码来手动取消选中导航抽屉中的所有项目。
menuItem1.setChecked(false);
menuItem2.setChecked(false);
menuItem3.setChecked(false);
menuItem4.setChecked(false);
等等。