处理导航抽屉和操作按钮的onOptionsItemSelected

时间:2014-08-18 06:07:43

标签: android

我在Android的一项活动中有一个导航抽屉。我还在同一个活动的操作栏中添加了几个Action按钮和一个动作溢出。 现在,问题在于处理导航抽屉项目,操作按钮和操作溢出菜单的选择事件。 目前,我的setOptionsItemSelected看起来像这样:

@Override
public boolean onOptionsItemSelected(MenuItem item) {

   if (mDrawerToggle.onOptionsItemSelected(item)) {
       return true;
   }

   return super.onOptionsItemSelected(item);
}

如何使其适用于导航项目点击,操作按钮点击和操作溢出菜单点击? 感谢您的帮助。

2 个答案:

答案 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);