安卓长按交互onCreateContextMenu的简单 用法

1.可在activity和fragment中使用。

2.使用方法

(1)注册

registerForContextMenu(btn);//btn是要实现交互的控件

(2)重写onCreateContextMenu方法和onContextItemSelected方法(有两种方式先讲第一种)

@Override

    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {

        super.onCreateContextMenu(menu, v, menuInfo);

        getMenuInflater().inflate(R.menu.menu,menu);

        //给menu设置布局文件,当触发时显示在界面上
    }
@Override

    public boolean onContextItemSelected(MenuItem item) {

        //布局文件里面对应的id,当点击时,根据id区别那个被点击

        switch(item.getItemId()){

            caseR.id.text1:

                Log.i("leilei","text1");

                break;

            caseR.id.text2:

                Log.i("leilei","text2");

                break;

            caseR.id.text3:

                Log.i("leilei","text3");

                break;
        }
        returnsuper.onOptionsItemSelected(item);
    }

(3)触发条件(1 调用方法 view.showContextMenu(),2 长按(可以和长按事件setOnLongClickListener同时触发)。

//调用方法方式

btn.setOnClickListener(newView.OnClickListener() {

            @Override

            public void onClick(View v) {

                v.showContextMenu();//单击直接显示Context菜单

            }

        });

在讲讲第二种方式(ContextMenu 方法)

@Override
    public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
        // TODOAuto-generated method stub
        menu.setHeaderIcon(R.drawable.tp_3);
        menu.setHeaderTitle(R.string.menuHeader01);
        menu.add(20, 20, 20, R.string.conTextMenu01);
        menu.add(20, 21, 21, R.string.conTextMenu02);
        super.onCreateContextMenu(menu, v, menuInfo);
    }
 @Override
    public boolean onContextItemSelected(MenuItem item){
        String str = "";
        switch(item.getItemId()){
        case 20:
            str = "20";
            break;
        case 21:
            str = "21";
            break;
        }
        Toast.makeText(getApplicationContext(),str, Toast.LENGTH_LONG).show();
        return true;
    }

这种是用原生的进行菜单填充

 menu.add(20, 20, 20, R.string.conTextMenu01);

 参数1:小组的标记;

参数2:给他设置一个ID ;

参数3:怎么显示位置(0,1);

参数4:文字的显示
 (4)总结

1.registerForContextMenu方法:用于为一个View对象注册上下文菜单,其输入为View对象

2.onCreateContextMenu方法:初始化上下文菜单,在需要相应上下文菜单时调用

3.onContextItemSelected方法:设置上下文中某个菜单被选中时的操作

4.onContextMenuClosed方法:用于设置当前上下文菜单被关闭时的操作,其输入为menu对象

 

by:leileitua

posted @ 2019-04-28 09:39  WidgetBox  阅读(2920)  评论(0编辑  收藏  举报