android项目--上下文菜单

一般说到上下文菜单基本上都是长按事件,在一个控件上长按,就会弹出一个菜单。

android项目--上下文菜单
 

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();

 

 

你可能感兴趣的:(android)