Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android中单击actionbar中的按钮时显示下拉菜单_Android_Android Actionbar_Dropdown - Fatal编程技术网

如何在Android中单击actionbar中的按钮时显示下拉菜单

如何在Android中单击actionbar中的按钮时显示下拉菜单,android,android-actionbar,dropdown,Android,Android Actionbar,Dropdown,我的操作栏中有两个按钮,即:注销和编辑配置文件。当我单击编辑配置文件时,我想显示下拉菜单,但我不知道如何显示。请帮忙。提前谢谢 public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()) { case R.id.action_logout: AlertDialog.Builder builder=new AlertDialog.Builder(

我的操作栏中有两个按钮,即:注销和编辑配置文件。当我单击编辑配置文件时,我想显示下拉菜单,但我不知道如何显示。请帮忙。提前谢谢

public boolean onOptionsItemSelected(MenuItem item)
{
    switch(item.getItemId())
    {
        case R.id.action_logout:
            AlertDialog.Builder builder=new AlertDialog.Builder(AdminHome.this);
            builder.setMessage("Are you sure you want to logout?")
            .setPositiveButton("Logout", new DialogInterface.OnClickListener() 
            {
                @Override
                public void onClick(DialogInterface dialog, int which) 
                {
                    new Logs().execute();
                    finish();
                    Intent in=new Intent(AdminHome.this, MainActivity.class);
                    startActivity(in);
                }
            })
            .setNegativeButton("Cancel", new DialogInterface.OnClickListener() 
            {
                @Override
                public void onClick(DialogInterface dialog, int which) 
                {

                }
            })
            .show();
            return true;

        case R.id.edituser:

            //WHAT TO PUT IN HERE
            return true;
    }

    return super.onOptionsItemSelected(item);

}

只需创建菜单项并单击它即可应用

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
       android:id="@+id/menu_item_action_parameters"
       android:title="@string/text_parameters"
       android:icon="@drawable/ic_menu_parameter"
       app:showAsAction="ifRoom|withText"/> >
       <menu>
          <item 
            android:id="@+id/action_dropdown1"
            android:title="@string/dropdown_1" />
          <item 
            android:id="@+id/action_dropdown2"
            android:title="@string/dropdown2" />
          <item 
            android:id="@+id/action_dropdown3"
            android:title="@string/dropdown3" />
        </menu>
    </item>

    <item
      more item
    </item>
</menu>

这样做,您的菜单xml应该是这样的:要在Actionbar或工具栏上显示的项目应该放在父菜单标记中,而子菜单项目(当edituser被点击时将显示在下拉菜单中)应该放在另一个菜单标记中:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

 <item android:id="@+id/action_logout"
      android:icon="@drawable/action_logout"
      android:title="@string/action_logout"
      android:showAsAction="always" > 

<item android:id="@+id/edituser"
      android:icon="@drawable/edituser"
      android:title="@string/edituser"
      android:showAsAction="always" >
 <menu>
 <item android:id="@+id/item1"
      android:icon="@drawable/ic_launcher"
      android:title="@string/item1"
      android:showAsAction="never"
      />

<item android:id="@+id/item2"
      android:icon="@drawable/ic_launcher"
      android:title="@string/item2" 
      android:showAsAction="never" />


<item android:id="@+id/item3"
      android:icon="@drawable/ic_launcher"
      android:title="@string/item3" 
      android:showAsAction="never"/>


<item android:id="@+id/item4"
      android:icon="@drawable/ic_launcher"
      android:title="@string/item4"
      android:showAsAction="never" />

 </menu>
      </item>
 </menu>


我希望我的回答很清楚。希望它能对您有所帮助。

下面是示例menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

<item
    android:id="@+id/action_logout" 
    android:icon="@drawable/logout"
    android:title="Logout"
    app:showAsAction="always"
    android:orderInCategory="1" />

<item
    android:id="@+id/action_edtprofile"
    android:icon="@drawable/edtProfile"
    android:title="Edit Profile"
    app:showAsAction="always"
    android:orderInCategory="0">

    <menu>
        <group>

            <item 
                 android:id="@+id/action_dropdown_item1"
                 android:title="dropdown_item1" />

            <item 
                 android:id="@+id/action_dropdown_item2"
                 android:title="dropdown_item2" />

            <item 
                 android:id="@+id/action_dropdown_item3"
                 android:title="dropdown_item3" />

        </group>
    </menu>

</item>


单击编辑配置文件后,将显示一个下拉菜单,使用id u可以执行该操作。

但我不知道如何以及如何在课堂上调用它?请参阅我的更新答案,并在单击项目时调用此方法
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

<item
    android:id="@+id/action_logout" 
    android:icon="@drawable/logout"
    android:title="Logout"
    app:showAsAction="always"
    android:orderInCategory="1" />

<item
    android:id="@+id/action_edtprofile"
    android:icon="@drawable/edtProfile"
    android:title="Edit Profile"
    app:showAsAction="always"
    android:orderInCategory="0">

    <menu>
        <group>

            <item 
                 android:id="@+id/action_dropdown_item1"
                 android:title="dropdown_item1" />

            <item 
                 android:id="@+id/action_dropdown_item2"
                 android:title="dropdown_item2" />

            <item 
                 android:id="@+id/action_dropdown_item3"
                 android:title="dropdown_item3" />

        </group>
    </menu>

</item>