ContextMenu的作用是显示一个菜单项的列表。使用ContextMenu的步骤有四步:
1)在res下边建一个menu文件夹,在menu文件夹里建一个menu文件。
2)registerForContextMenu(View);
3)重写onCreateContextMenu()方法;
4)重写onContextItemSelected()方法;
具体的实现方法是:
第一步:新建menu文件。
registerForContextMenu(view);
@Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); //给menu设置布局文件,当触发的时候显示在界面上 getMenuInflater().inflate(R.menu.main_menu,menu); }
第四步:重写onContextItemSelected()方法,设置菜单中的item点击时候的效果
@Override public boolean onContextItemSelected(MenuItem item) { switch (item.getItemId()){ case R.id.item_one: Toast.makeText(MainActivity.this,"item_one被点击了",Toast.LENGTH_LONG).show(); break; case R.id.item_two: Toast.makeText(MainActivity.this,"item_two被点击了",Toast.LENGTH_LONG).show(); break; case R.id.item_three: Toast.makeText(MainActivity.this,"item_three被点击了",Toast.LENGTH_LONG).show(); break; } return super.onContextItemSelected(item); }
设置完这四步,就完成了ContextMenu的操作,接下来就是ContextMenu的显示,显示有两种方式,一种是触发注册时view的长按事件,一种是调用view.showContextMenu()方法。
完整的代码地址:https://github.com/ruxing1102/ContextMenuDemo/tree/master
具体实现效果是: