Android 实现点击出现选择框,或者长按显示选择界面,PopupMenu的简单使用。
来源:互联网 发布:来源搜星算法 编辑:程序博客网 时间:2024/05/17 01:27
这篇文章是我学习过程中遇到的一个比较简单的,但是却经常用到的知识点,例如ListView Item长按的选择功能,或者是点击一个按钮弹出一个小型的功能选择界面。
其实呢,这个是通过一个PopupMenu来实现,来现在我们先看看代码,首先我们需要在 res目录下的menu目录下创建一个xml文件,如果res目录下没有menu目录,则新建一个目录为menu则好,然后创建一个xml文件。
main_menu.xml
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"><item android:id="@+id/add_item" android:title="Add" ></item> <item android:id="@+id/delete_item" android:title="Delete" ></item></menu>
这里面的Item就是有多少个功能选项和它的名字。
然后我们看一下activity_main.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" 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="com.example.administrator.learnmenu.MainActivity"> <Button android:id="@+id/btn_popMenu" android:textAllCaps="false" android:text="Popmenu" android:layout_width="match_parent" android:layout_height="wrap_content" /></RelativeLayout>
这里面我们就放置了一个button用于点击后弹出功能选项菜单。
然后就是最主要的代码来实现主要功能了。
MainActivity
public class MainActivity extends AppCompatActivity { Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); btn = (Button) findViewById(R.id.btn_popMenu); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { showPopMenu(view); } }); } public void showPopMenu(View view){ PopupMenu menu = new PopupMenu(this,view); menu.getMenuInflater().inflate(R.menu.main_menu,menu.getMenu()); menu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()){ case R.id.add_item: Toast.makeText(MainActivity.this, "Add selected", Toast.LENGTH_SHORT).show(); break; case R.id.delete_item: Toast.makeText(MainActivity.this, "Delete Selected", Toast.LENGTH_SHORT).show(); break; } return true; } }); menu.setOnDismissListener(new PopupMenu.OnDismissListener() { @Override public void onDismiss(PopupMenu menu) { Toast.makeText(MainActivity.this, "关闭了", Toast.LENGTH_SHORT).show(); } }); menu.show(); }}
我们来看看核心代码部分。
showpopMenu这个函数
public void showPopMenu(View view){ PopupMenu menu = new PopupMenu(this,view); menu.getMenuInflater().inflate(R.menu.main_menu,menu.getMenu()); menu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()){ case R.id.add_item: Toast.makeText(MainActivity.this, "Add selected", Toast.LENGTH_SHORT).show(); break; case R.id.delete_item: Toast.makeText(MainActivity.this, "Delete Selected", Toast.LENGTH_SHORT).show(); break; } return true; } }); menu.setOnDismissListener(new PopupMenu.OnDismissListener() { @Override public void onDismiss(PopupMenu menu) { Toast.makeText(MainActivity.this, "关闭了", Toast.LENGTH_SHORT).show(); } }); menu.show(); }
在这里面,我们通过传入View来 PopupMenu menu。得到这个menu对象后就可以实现功能了,设置监听,通过判断点击的item id 来确定点击的是哪里然后做相应的功能。
menu.getMenuInflater().inflate(R.menu.main_menu,menu.getMenu());
这里则是获取到了我们最开始写好的那个menu.xml.然后 menu.setOnDismissListener这里面是功能菜单关闭后执行的。(选择功能后关闭,或者直接关闭).
这就是我学习过程中的整体收获,可能有很多理解有误或者不是太清楚的地方,仅仅作为一个学习过程的记录。
0 0
- Android 实现点击出现选择框,或者长按显示选择界面,PopupMenu的简单使用。
- 点击输入框显示一个时间选择界面
- 点击输入框显示一个时间选择界面
- Android简单实现列表菜单--PopupMenu的简单使用。
- 简单的实现EditText点击实现日期选择弹框
- android textview自动识别网址,点击长按选择文本
- Android PopupMenu简单使用
- radio或者checkbox点击文字实现选择
- android 中PopupMenu 的简单使用
- PopupMenu的简单使用
- 【Android】PopupMenu的使用
- android阅读器长按选择文字功能实现代码
- login界面 checkbox选择显示或者隐藏密码
- Android-用户头像图片选择的简单实现
- Android登陆界面的简单实现(登陆背景渐变,密码点击隐藏与显示)
- Android上实现一个简单的天气预报APP(七) 切换到新的界面(选择城市界面)
- Android---Spinner的使用01(选择下拉框Toast显示选择的数据)
- Android中实现界面显示长图
- 折腾一下YII2中的RESTful开发(上)
- CodeForces 584D - Dima and Lisa(数论)
- Dialog源码分析
- Eclipse Project Build Automatically、Build Project
- 《Spark商业案例与性能调优实战100课》第9课:商业案例之通过Spark SQL 下两种不同方式实现口碑最佳和最热门电影比较
- Android 实现点击出现选择框,或者长按显示选择界面,PopupMenu的简单使用。
- 时间管理让我们变得高效
- Java正则表达式
- Android libyuv应用系列(二)libyuv在Android中的使用
- js页面中跳转并传值的2种方法
- HDU 5726 GCD
- Git(初识版本控制工具)
- 企业中,路由器无线可以连接的上但是上不了网的问题解决
- MySql学习笔记