我在Android的一项活动中有一个导航抽屉。我还在同一个活动的操作栏中添加了几个Action按钮和一个动作溢出。
现在,问题在于处理导航抽屉项目,操作按钮和操作溢出菜单的选择事件。
目前,我的setOptionsItemSelected
看起来像这样:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
return super.onOptionsItemSelected(item);
}
如何使其适用于导航项目点击,操作按钮点击和操作溢出菜单点击? 感谢您的帮助。
答案 0 :(得分:2)
因此,我对onOptionsItemSelected
函数进行了一些修改,并且能够使其正常工作。
以下是面临同样问题的人的代码:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// enabling drawer toggle by clicking on the app icon.
if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
else {
switch(item.getItemId()) {
case R.id.action_refresh:
Log.d("ActionItemClicked", "Refresh clicked");
return true;
case R.id.action_share:
Log.d("ActionItemClicked", "Share clicked");
return true;
}
}
return super.onOptionsItemSelected(item);
}
我希望它可以帮助任何人解决同样的问题。
答案 1 :(得分:1)
如果你的xml文件包含ListView,如下所示,那么你需要在导航抽屉活动中找到ListViewId到listView,然后设置它的setItemSelectListener ...... 我不知道你是如何实现和设计你的导航抽屉..所以如果这没有帮助请分享你的代码..动作栏和导航器之间没有关系和依赖
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/drawerlayout">
<fragment
android:name="com.example.juju.Main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/maincontent"></fragment>
<ListView
android:divider="@null"
android:background="#202020"
android:layout_width="240dp"
android:layout_height="match_parent"
android:id="@+id/drawerlist"
android:layout_gravity="left">
</ListView>
</android.support.v4.widget.DrawerLayout>
以下代码正在做的是启用导航器从标题的操作栏打开...用于处理操作栏中的项目和溢出你必须通过onOptionItemSelected()实现它...希望这清除所有内容..
if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
return super.onOptionsItemSelected(item);