layout.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="点击弹出PopupMenu菜单" android:layout_centerInParent="true" android:onClick="onOpenPopup" android:textSize="20sp"/> </RelativeLayout>
menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/popoMenu1" android:title="菜单一"/> <item android:id="@+id/popoMenu2" android:title="菜单二"/> </menu>
main.java
package com.example.day10_popumenu; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.PopupMenu; import android.widget.Toast; import android.widget.PopupMenu.OnMenuItemClickListener; import android.widget.TextView; /** * Popupmenu 泡泡菜单,菜单放在对应的控件下面,不能自动触发 * 1.PopuMenu在3.0以后的版本使用 * 2.创建 * * @author my * */ public class MainActivity extends Activity { private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button = (Button) findViewById(R.id.button); } public void onOpenPoPup(View v){ /** * 创建Popupmenu对象,参数2表示将popummenu放大到对应的控件下面 */ PopupMenu popupMenu = new PopupMenu(MainActivity.this, button); //将xml的menu加载到popupMenu中 popupMenu.getMenuInflater().inflate(R.menu.main, popupMenu.getMenu()); //展示--点击menuitem选项后,会自动隐藏 popupMenu.show(); //为popupMenu 设置点击事件 popupMenu.setOnMenuItemClickListener(new OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { Toast.makeText(MainActivity.this, item.getItemId(), 0).show(); return true; } }); } }