如何使导航抽屉中的特定项目显示为选中状态?

我已经对这个问题感到沮丧了很长一段时间,但我似乎无法使导航抽屉中的项目以编程方式显示,也不能在用户select时显示。

我正在尝试实现以下http://sofzh.miximages.com/android/PIHEm.png (我现在还不能发布图片)

我遵循http://developer.android.com/training/implementing-navigation/nav-drawer.html中的示例导航抽屉,每当切换片段时, setItemChecked()在导航抽屉的ListView上调用setItemChecked()

mDrawerListView.setItemChecked(position, true); ,但似乎没有select在列表视图中的位置的项目。

我的布局文件也几乎完全像谷歌的例子

 <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <FrameLayout android:id="@+id/content_frame" android:layout_width="match_parent" android:layout_height="match_parent" /> <ListView android:id="@+id/left_drawer" android:layout_width="160dp" android:layout_height="match_parent" android:layout_gravity="start" android:choiceMode="singleChoice" android:divider="@android:color/transparent" android:dividerHeight="0dp" android:background="#e5e5e5" /> </android.support.v4.widget.DrawerLayout> 

任何帮助非常感谢,并提前感谢。

编辑:这是我的导航抽屉的初始化代码。 正如你所看到的,我没有使用自定义的ListView或Adapter。

  private void setUpDrawer() { mDrawerListViewItems = getResources().getStringArray(R.array.drawer_list_item_names); mDrawerListView = (ListView) findViewById(R.id.left_drawer); mDrawerListView.setAdapter(new ArrayAdapter<String>(this, R.layout.drawer_list_item, mDrawerListViewItems)); mDrawerListView.setOnItemClickListener(new ListView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { selectCounterFragment(position); } }); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); mDrawerToggle = new ActionBarDrawerToggle( this, /* host Activity */ mDrawerLayout, /* DrawerLayout object */ R.drawable.ic_drawer, /* nav drawer icon to replace 'Up' caret */ R.string.drawer_open, /* "open drawer" description */ R.string.drawer_close /* "close drawer" description */ ); // Set actionBarDrawerToggle as the DrawerListener mDrawerLayout.setDrawerListener(mDrawerToggle); // styling option add shadow the right edge of the drawer mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START); } 

谢谢大家,迄今为止的回应。

Solutions Collecting From Web of "如何使导航抽屉中的特定项目显示为选中状态?"

什么是您的列表项目的布局? 有许多带有列表项目布局的“陷入”状态的陷阱导致列表视图不能被select/可点击。

我build议看看Cyril Mottier的优秀文章,尤其是看看“为什么,地狱,我的video不能再点击了?

祝你好运,

CJ。

这个

 navigationView.getMenu().getItem(0).setChecked(true); 

将select菜单上的第一项。

在yournavigationlist.xml文件中使用android:checked = "true"

Eample:

 <group android:checkableBehavior="single"> <item android:id="@+id/nav_main" android:checked="true" android:title="Home" /> <item android:id="@+id/nav_gallery" android:icon="@drawable/ic_menu_gallery" android:title="Gallery" /> </group> 

当应用程序启动时,缺省情况下会selectid为nav_main项目。

设置导航navigationView.setCheckedItem(R.id.default)后,使用navigationView.setCheckedItem(R.id.default)

安卓:检查=“真”

到您的特定菜单项。

如果你想打开特定的片段

 getSupportFragmentManager().beginTransaction().replace(R.id.frame, new YourFragment()).commit();