如何在Android弹出菜单

时间:2015-07-29 07:05:30

标签: android

我已经尝试了很多,但我无法在弹出菜单中添加图标。 首先我创建菜单文件,即

<item
android:id="@+id/search"
android:icon="@android:drawable/ic_menu_search"
android:title="Search"
    android:showAsAction="ifRoom">

<item
    android:id="@+id/add"
    android:icon="@android:drawable/ic_menu_add"
    android:title="Add"
    android:showAsAction="ifRoom"/>
<item
    android:id="@+id/edit"
    android:icon="@android:drawable/ic_menu_edit"
    android:title="Edit"
    android:showAsAction="ifRoom"/>
    <menu>
        <item
            android:id="@+id/share"
            android:icon="@android:drawable/ic_menu_share"
            android:title="Share"
            android:showAsAction="ifRoom"/>
    </menu>
</item>

我在layout / activity_main文件中添加了一个按钮

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="New Button"
    android:id="@+id/button"
    android:layout_centerVertical="true"
    android:layout_alignParentStart="true"
    android:onClick="onPopupButtonClick"/>

java文件MainActivity.java

公共类MainActivity扩展了ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);




}


public void onPopupButtonClick(View button) {
    PopupMenu popup = new PopupMenu(this, button);
    popup.getMenuInflater().inflate(R.menu.menu_main, popup.getMenu());

    popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
        public boolean onMenuItemClick(MenuItem item) {
            Toast.makeText(MainActivity.this,
                    "Clicked popup menu item " + item.getTitle(),
                    Toast.LENGTH_SHORT).show();
            return true;
        }
    });

    popup.show();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
   /* if (id == R.id.action_settings) {
        return true;
    }*/

    return super.onOptionsItemSelected(item);
}

}

1 个答案:

答案 0 :(得分:0)

在新的Android版本中已弃用。它在Android 2.2上正常运行。

  
      
  1. 上下文菜单:不支持项目快捷方式和项目图标。
  2.   
  3. 选项菜单:图标菜单不支持项目复选标记,仅显示项目的精简标题。扩展菜单(仅限   如果可以看到六个或更多菜单项,则可通过   &#39;更&#39;图标菜单中的项目)不显示项目图标和项目检查   不鼓励分数。
  4.   
  5. 子菜单:不支持项目图标或嵌套子菜单。
  6.   

如果你想添加图标并在菜单中显示它们,你必须使用ActionBarSherlock或类似的东西。

Here您有更多相关信息。

玩得开心。