android项目--上下文菜单
2014-06-08 15:31
204 查看
一般说到上下文菜单基本上都是长按事件,在一个控件上长按,就会弹出一个菜单。
1.创建上下文菜单:
2.覆盖方法onContextItemSelected。对每一个菜单项进行相应的处理
3.注册上下文菜单。如果没有注册,单击界面的某一个视图是没有反应的,所以上下文菜单与前面的选项菜单不一样
-----------------------------------------------------------
在此,我想说的是另一种方法:通过对话框设置短按的上下文菜单
----------------------------------------------------------
1.创建上下文菜单:
//覆盖方法,创建上下文菜单 @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); //创建菜单项
menu.add(0, 0, 0, "查看"); menu.add(0, 1, 0, "跳转至网页查看"); menu.add(0, 2, 0, "查看博主其他博文");
menu.add(0, 0, 0, "删除此项"); menu.add(0, 1, 0, "全部删除"); menu.add(0, 2, 0, "返回");
}
2.覆盖方法onContextItemSelected。对每一个菜单项进行相应的处理
// 覆盖方法,对每一个菜单项进行事件监听 @Override public boolean onContextItemSelected(MenuItem item) { switch (item.getItemId()) { case 0: Toast.makeText(context, "查看", Toast.LENGTH_SHORT).show(); break; case 1: Toast.makeText(context, "跳转至网页查看", Toast.LENGTH_SHORT).show(); break; case 2: // 。。。。。。。。 break; default: break; } return super.onContextItemSelected(item); }
3.注册上下文菜单。如果没有注册,单击界面的某一个视图是没有反应的,所以上下文菜单与前面的选项菜单不一样
registerForContextMenu(linearLayout); //注册上下文菜单
-----------------------------------------------------------
在此,我想说的是另一种方法:通过对话框设置短按的上下文菜单
----------------------------------------------------------
AlertDialog.Builder dalog = new AlertDialog.Builder(OfflineBlogsContentActivity.this);
dalog.setTitle("请选择您要的操作:");
dalog.setView(null);
dalog.setItems(new String[] { "跳转至网页查看", "查看博主其他博文", "删除此记录", "取消"},
new OnClickListener() {
@Override
public void onClick(DialogInterface dialog1, int which) {
switch (which) {
case 0://跳转至网页查看
Intent intent = new Intent(OfflineBlogsContentActivity.this,
BlogsContentActivity.class);
intent.setAction("showbloger");
intent.putExtra("id", blog_offine.getBlogId());
intent.putExtra("newstitle", blog_offine.getBlogTitle());
intent.putExtra("link", blog_offine.getBlogUrl());
intent.putExtra("summary", blog_offine.getBlogSummary());
intent.putExtra("updated", blog_offine.getUpdateTime());
intent.putExtra("comments", blog_offine.getBlogSummary());
intent.putExtra("name", blog_offine.getBloger());
if (CheckNetWork.checkNetworkInfo(OfflineBlogsContentActivity.this)) {
startActivity(intent);
}
break;
case 1://查看博主其他博文
if (CheckNetWork.checkNetworkInfo(OfflineBlogsContentActivity.this)) {
System.out.println(blogapp);
Intent intent1 = new Intent(OfflineBlogsContentActivity.this,BlogerAllBlogsActivity.class);
intent1.putExtra("blogapp", blogapp);
intent1.putExtra("avatar", blogerimgUrl);
intent1.putExtra("name", blogername);
intent1.putExtra("postcount", blogernum);
startActivity(intent1);
}else{
Toast.makeText(OfflineBlogsContentActivity.this, "当前无网络!", Toast.LENGTH_SHORT).show();
}
break;
case 2://删除此记录
AlertDialog.Builder alert = new AlertDialog.Builder(
OfflineBlogsContentActivity.this);
alert.setView(null);
alert.setTitle("删除此项");
alert.setMessage("警告:将删除" + itemName);
alert.setPositiveButton("确定",
new OnClickListener() {
@Override
public void onClick(
DialogInterface dialog,
int which) {
BlogsSQLHelper
.getDBInstance(
OfflineBlogsContentActivity.this)
.deleteItem(
blog_offine
.getBlogId());
}
});
alert.setNegativeButton("取消", null);
alert.create().show();
break;
case 3://取消
dialog1.dismiss();
break;
}
}
});
dalog.create().show();
相关文章推荐
- 新手入门——Ophone(Android)开发项目文件结构
- 热恋Android (3 -- Android项目结构)
- Android用Ant管理项目
- 【移动生活】Google项目副总裁安迪·鲁宾谈Android
- 新建android项目的结构
- 面向 Android 的 Google 项目
- 环境搭建好后的第一个Android 项目
- Android开发之旅:HelloWorld项目的目录结构
- android项目中数据库获取的方法
- Android项目之Game of Brick beat on G1【一.准备】
- android编译单个项目
- 郁闷的 android 项目开发
- 签名你的android项目
- 传智播客-Android(1)-环境准备和Android项目目录结构分析
- Android项目中编译 C的模块
- android IM项目完成
- Android 修改项目名称
- Android老版本项目导入到新版SDK提示错误
- 编译android项目
- 项目中为解决Android out of memeory问题做出的尝试