一,简介
Android系统中的ContextMenu(上下文菜单)类似于PC的右键弹出菜单,当一个视图注册了上下文菜单,长按该试图对象将出现一个提供相关功能的浮动菜单。
使用:
上下文菜单可以被注册到任何视图中,最常见的是ListView,但是上下文菜单不支持图标和快捷键。
二,调用需要的方法
1,onCreateContextMenu方法:当上下文菜单被创建时 回调该函数
2,onContextItemSelected方法:当上下文菜单某项被选中时回调该函数
3,registerForContextMenu方法:注册上下文菜单
三,代码实现
1,添加XML布局文件:
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/myTextView" android:textSize="20sp" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="长按。。。" />
2,代码:
public class MainActivity extends ListActivity /*注意这里继承的类*/{ private static final int ITEM1 = Menu.FIRST; private static final int ITEM2 = Menu.FIRST+1; private static final int ITEM3 = Menu.FIRST+2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.activity_main); showListView(); registerForContextMenu(getListView()); } private void showListView(){ String[] mString = new String[]{ "评论1:请叫我叶良辰!", "评论2:只有我叶良辰才这么帅气逼人了!", "评论3:良辰在此谢过了!", "评论4:哎呦,不错呦!", "评论5:搜嘎!~~~~·", "评论6:还记得大明湖畔的容嬷嬷么?", "评论7:尔康,有人抢了你的风头!", }; ArrayAdapter<String> mla = new ArrayAdapter<String>(MainActivity.this, R.layout.main, mString); MainActivity.this.setListAdapter(mla); } //当上下文菜单被创建时 回调该函数 @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { menu.setHeaderTitle("删除评论!"); //添加菜单项 menu.add(0, ITEM1, 0, "删除"); menu.add(0, ITEM2, 0, "取消"); super.onCreateContextMenu(menu, v, menuInfo); } //当上下文菜单某项被选中时回调该函数 @Override public boolean onContextItemSelected(MenuItem item) { //获取当前被选择的菜单项的信息 switch(item.getItemId()){ case ITEM1: //在这里添加处理代码 break; case ITEM2: //在这里添加处理代码 break; } return true; } }
注意继承的Activity基类,刚开始继承的类写错了,导致 无法找到getListView方法。
时间: 2024-09-11 15:56:27