分享

Android通过PopupMenu定义弹出菜单的位置

 一楠tech 2017-09-05

效果如图:



具体实现代码如下:

  1. package com.example.mytest;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.support.v4.app.FragmentActivity;  
  6. import android.view.Menu;  
  7. import android.view.MenuItem;  
  8. import android.view.View;  
  9. import android.view.View.OnClickListener;  
  10. import android.widget.Button;  
  11. import android.widget.PopupMenu;  
  12. import android.widget.Toast;  
  13.   
  14. public class MainActivity extends Activity {  
  15.   
  16.     @Override  
  17.     protected void onCreate(Bundle savedInstanceState) {  
  18.         super.onCreate(savedInstanceState);  
  19.         setContentView(R.layout.activity_main);  
  20.   
  21.         Button btn = (Button) findViewById(R.id.btn);  
  22.   
  23.         btn.setOnClickListener(new OnClickListener() {  
  24.   
  25.             @Override  
  26.             public void onClick(View v) {  
  27.                   
  28.                 showPopupMenu(v);  
  29.             }  
  30.         });  
  31.     }  
  32.   
  33.     private void showPopupMenu(View view) {  
  34.         // View当前PopupMenu显示的相对View的位置  
  35.         PopupMenu popupMenu = new PopupMenu(this, view);  
  36.   
  37.         // menu布局  
  38.         popupMenu.getMenuInflater().inflate(R.menu.main, popupMenu.getMenu());  
  39.   
  40.         // menu的item点击事件  
  41.         popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {  
  42.             @Override  
  43.             public boolean onMenuItemClick(MenuItem item) {  
  44.                 Toast.makeText(getApplicationContext(), item.getTitle(), Toast.LENGTH_SHORT).show();  
  45.                 return false;  
  46.             }  
  47.         });  
  48.   
  49.         // PopupMenu关闭事件  
  50.         popupMenu.setOnDismissListener(new PopupMenu.OnDismissListener() {  
  51.             @Override  
  52.             public void onDismiss(PopupMenu menu) {  
  53.                 Toast.makeText(getApplicationContext(), "关闭PopupMenu", Toast.LENGTH_SHORT).show();  
  54.             }  
  55.         });  
  56.   
  57.         popupMenu.show();  
  58.     }  
  59.   
  60. }  


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多