Android通过PopupMenu定义弹出菜单的位置
16lz
2022-03-15
效果如图:
具体实现代码如下:
package com.example.mytest;import android.app.Activity;import android.os.Bundle;import android.support.v4.app.FragmentActivity;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.PopupMenu;import android.widget.Toast;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button btn = (Button) findViewById(R.id.btn);btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {showPopupMenu(v);}});}private void showPopupMenu(View view) {// View当前PopupMenu显示的相对View的位置PopupMenu popupMenu = new PopupMenu(this, view);// menu布局popupMenu.getMenuInflater().inflate(R.menu.main, popupMenu.getMenu());// menu的item点击事件popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {@Overridepublic boolean onMenuItemClick(MenuItem item) {Toast.makeText(getApplicationContext(), item.getTitle(), Toast.LENGTH_SHORT).show();return false;}});// PopupMenu关闭事件popupMenu.setOnDismissListener(new PopupMenu.OnDismissListener() {@Overridepublic void onDismiss(PopupMenu menu) {Toast.makeText(getApplicationContext(), "关闭PopupMenu", Toast.LENGTH_SHORT).show();}});popupMenu.show();}}
更多相关文章
- Android解析微博小尾巴
- Android之Widget
- 关于Android(安卓)Studio关闭模拟器死机解决方案的尝试
- android WebView 应用内点击超链接不调用系统浏览器
- Android触摸事件的传递(八)-View
- android hover监控鼠标移动事件
- android framework 输入事件分析
- Android(安卓)Studio第十五期 - 友盟统计集成
- Android(安卓)3.0 r1 API中文文档(113) ——SlidingDrawer