ListView长按菜单的实现

本文介绍了两种在Android中实现ListView长按菜单的方法。第一种方法通过注册上下文菜单并定义菜单项及响应事件;第二种方法则直接设置ListView的长按监听器。这两种方式均可实现长按ListView项时弹出菜单。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网络上查阅,ListView长按菜单有两种方式可以实现

 

 

第一种方式,需要三步

一、先定义ListView的长按菜单

ListView listView = (ListView) findViewById(R.id.main_listview);
registerForContextMenu(listView);

二、为菜单添加详细的项目标题图标。

public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo)
    {
        // TODO Auto-generated method stub
        super.onCreateContextMenu(menu, v, menuInfo);
        menu.setHeaderTitle("菜单");
        menu.add(0, 1, 0, "详细");
        menu.add(0, 2, 0, "修改");
        menu.add(0, 3, 0, "删除");
    }

三、定义点击菜单里每个项目的 动作

public boolean onContextItemSelected(MenuItem menu)
    {
        AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menu.getMenuInfo();


        switch (menu.getItemId())
        {
        case 1:  //点击  长按菜单的  详细 
            
            break;
        case 2:  //点击  长按菜单的 修改
            

            break;
        case 3:  //点击  长按菜单的 删除
            

            break;
        }

        return super.onContextItemSelected(menu);
    }

 

 

第二种方式:

一,直接定义ListView的长按事件

detailed_listview.setOnCreateContextMenuListener(new OnCreateContextMenuListener()  //ListView的长按菜单
        {


            public void onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo info)
            {
                menu.setHeaderTitle("菜单");
                menu.add(0, 1, 0, "修改");
                menu.add(0, 2, 0, "删除");
            }
        });

 

二、菜单上每个项目的点击事件

public boolean onContextItemSelected(MenuItem item)
    {

    
        AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();

        switch (item.getItemId())
        {
        case 1:  //修改数据

            break;
        case 2:  //删除数据

            break;
        }
        return super.onContextItemSelected(item);
    }

转载于:https://www.cnblogs.com/qq28902581/p/4600686.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值