Android中的ContextMenu
来源:互联网 发布:1024最新地址知乎 编辑:程序博客网 时间:2024/05/16 06:38
Android 的ContextMenu,即上下文菜单。(类似电脑上的鼠标右键功能,选中某个元素,然后点右键,在弹出菜单上执行操作。)在手机上,通过长时间按住界面上的元素,就会出现事先设计好的上下文菜单。
实现ContextMenu,一般要用到以下三个方法:
(1)registerForContextMenu(getExpandableListView());//注册上下文菜单
(2)onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo);//创建上下文菜单
(3)onContextItemSelected(MenuItem item);//上下文菜单的选中事件
Tips:Options Menu的拥有者是Activity,而上下文菜单的拥有者是Activity中的View。每个Activity有且只有一个Options Menu,它为整个Activity服务。而一个Activity往往有多个View,并不是每个View都有上下文菜单,这就需要我们调用registerForContextMenu(View view)来指定。
上代码:
import android.app.Activity;import android.os.Bundle;import android.support.v7.app.ActionBarActivity;import android.view.ContextMenu;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.Window;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.Toast;import java.util.ArrayList;public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); showListView(); } private void showListView(){ ListView listView = (ListView) findViewById(R.id.lv); ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,getData()); listView.setAdapter(adapter); this.registerForContextMenu(listView);//注册上下文菜单 } //创建菜单 @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); //设置mune显示的内容 menu.setHeaderTitle("文件操作"); menu.setHeaderIcon(R.drawable.ic_launcher);// public MenuItem add(int groupId, int itemId, int order, CharSequence title); menu.add(1,1,1,"copy"); menu.add(1,2,1,"cut"); menu.add(1,3,1,"past"); menu.add(1,4,1,"cancel"); } //响应菜单 @Override public boolean onContextItemSelected(MenuItem item) { switch (item.getItemId()){ case 1: Toast.makeText(this, "clicked copy",Toast.LENGTH_SHORT).show(); break; case 2: Toast.makeText(this, "clicked cut",Toast.LENGTH_SHORT).show(); break; case 3: Toast.makeText(this, "clicked past",Toast.LENGTH_SHORT).show(); break; case 4: Toast.makeText(this, "clicked cancel",Toast.LENGTH_SHORT).show(); break; } return super.onContextItemSelected(item); } private ArrayList<String> getData(){ ArrayList<String> list=new ArrayList<>(); for(int i=0;i<5;i++){ list.add("file"+(i+1)); } return list; }}
效果:
参考:
- Android 菜单(ContextMenu)
- Android之ContextMenu的使用方法以及与OptionMenu的区别
感谢原作者。
0 0
- android ContextMenu中的SubMenu
- Android中的ContextMenu
- Android中的菜单-ContextMenu,PopupMenu
- Android中的OptionsMenu,ContextMenu,pupMenu例子
- Android中的菜单OptionsMenu,ContextMenu和PopupMenu
- Android ContextMenu
- android ContextMenu
- android ContextMenu
- ContextMenu android
- Android中的上下文菜单(ContextMenu)使用案例
- Android ListView Item ContextMenu
- android ContextMenu理解
- Android OptionsMenu和 ContextMenu
- android的ContextMenu
- Android--ContextMenu上下文菜单
- Android ContextMenu的使用
- 【Android】上下文菜单contextMenu
- android OptionsMenu 和 ContextMenu
- 【DB.Oracle】create index注意n如果是大表建立索引,切记加上ONLINE参数
- 第十七周项目5-玩日期时间
- 解决布局中组件不能放在底部的问题
- P1129 产生数
- 【APP小鲜肉】这样的一群人,会做出怎样的一个APP,欢迎大家试用
- Android中的ContextMenu
- oj平台 期末刷题二(第六到第十)
- 第17周 oj 98776》》》》》》》9-6=3 while
- 各种RGB格式转换
- MTK Android 之MT6577驱动笔记
- Linux多线程编程时如何查看一个进程中的某个线程是否存活
- 第17周项目6--学生成绩统计(4)!!!
- MSSQL示例(一)DDL
- Unity中Screen类