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方法。
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/lhc1105/article/details/48804777