package com.diygreen.andoid4;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.PopupMenu;
import android.widget.Toast;
public class PopupMenuDemoActivity extends AppCompatActivity implements PopupMenu.OnMenuItemClickListener {
private static final int MENU_ITEM_COPY_ID = 1001;
private static final int MENU_ITEM_PASTE_ID = 1002;
private PopupMenu mPopupMenu1;
private PopupMenu mPopupMenu2;
private PopupMenu mPopupMenu3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_popupmenudemo);
initPupupMenu();
initListener();
}
private void initPupupMenu() {
createPopupMenuByCode();
createPopupMenuFromXML();
createPopupMenuFromMixture();
}
private void initListener() {
this.mPopupMenu1.setOnMenuItemClickListener(this);
this.mPopupMenu2.setOnMenuItemClickListener(this);
this.mPopupMenu3.setOnMenuItemClickListener(this);
}
private void createPopupMenuByCode() {
mPopupMenu1 = new PopupMenu(this, findViewById(R.id.btn_popupmenu1));
Menu menu = mPopupMenu1.getMenu();
// 通过代码添加菜单项
menu.add(Menu.NONE, MENU_ITEM_COPY_ID, 0, "唐僧");
menu.add(Menu.NONE, MENU_ITEM_PASTE_ID, 1, "孙悟空");
}
private void createPopupMenuFromXML() {
mPopupMenu2 = new PopupMenu(this, findViewById(R.id.btn_popupmenu2));
Menu menu = mPopupMenu2.getMenu();
// 通过XML文件添加菜单项
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.popupmenu, menu);
}
private void createPopupMenuFromMixture() {
mPopupMenu3 = new PopupMenu(this, findViewById(R.id.btn_popupmenu3));
Menu menu = mPopupMenu3.getMenu();
// 通过代码添加菜单项
menu.add(Menu.NONE, MENU_ITEM_COPY_ID, 0, "唐僧");
menu.add(Menu.NONE, MENU_ITEM_PASTE_ID, 1, "孙悟空");
// 通过XML文件添加菜单项
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.popupmenu, menu);
}
//==========点击事件处理==========
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_popupmenu1:
showPopupMenu1();
break;
case R.id.btn_popupmenu2:
showPopupMenu2();
break;
case R.id.btn_popupmenu3:
showPopupMenu3();
break;
}
}
private void showPopupMenu1() {
mPopupMenu1.show();
}
private void showPopupMenu2() {
mPopupMenu2.show();
}
private void showPopupMenu3() {
mPopupMenu3.show();
}
@Override
public boolean onMenuItemClick(MenuItem item) {
toast(item.getTitle().toString() + item.getItemId());
return false;
}
private void toast(String str) {
Toast.makeText(this, str, Toast.LENGTH_LONG).show();
}
}