Activity的活动Menu和上下文Menu使用示例

简介: 步骤 1、重写Activity中的  public void onCreateContextMenu(ContextMenu menu, View v,   ContextMenu.ContextMenuInfo menuInfo){         super.

步骤

1、重写Activity中的 

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

         super.onCreateContextMenu(menu, v, menuInfo);

}

 创建Activity下方的menu菜单

2、创建上下文的Menu

 (1)重写

private  ListView myListView;
public   void  onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
myListView 
=  (ListView) findViewById(R.id.myListView);
....
registerForContextMenu(myListView);
}

用registerForContextMenu注册,当常按ListView中的某一项时会弹出Menu

(2)重写

// 创建上下文Menu
    @Override
    
public   void  onCreateContextMenu(ContextMenu menu, View v,
            ContextMenu.ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        menu.setHeaderTitle(
" Select to do item " );
        menu.add(
0 , REMOVE_TODO, Menu.NONE, R. string .remove);
    }

实现点击后弹出的Menu的内容

(3)重写onOptionsItemSelected(MenuItem item)实现活动菜单选中后的操作

 

// 活动菜单选中后的操作
    @Override
    
public  boolean onOptionsItemSelected(MenuItem item) {
        super.onOptionsItemSelected(item);
        
int  index  =  myListView.getSelectedItemPosition();

        
switch  (item.getItemId()) {
        
case  (REMOVE_TODO):
            
if  (addingNew) {
                cancelAdd();
            } 
else  {
                removeItem(index);
            }
            
return   true ;
        
case  (ADD_NEW_TODO):
            addNewItem();
            
return   true ;
        }
        
return   false ;
    }

 

(4)重写public boolean onContextItemSelected(MenuItem item)实现上下文菜单选中后的操作

 

// 上下文菜单选中后的操作
    @Override
    
public  boolean onContextItemSelected(MenuItem item) {
        super.onContextItemSelected(item);
        
switch  (item.getItemId()) {
        
case  REMOVE_TODO:
            AdapterView.AdapterContextMenuInfo menuInfo;
            menuInfo 
=  (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
            
int  index  =  menuInfo.position;
            removeItem(index);
            
return   true ;
        }
        
return   false ;
    }

 

代码:/Files/cappuccino/TodoList.rar

相关文章
关于 车机U盘音乐歌曲名显示乱码bug 的解决方法
关于 车机U盘音乐歌曲名显示乱码bug 的解决方法
关于 车机U盘音乐歌曲名显示乱码bug 的解决方法
|
缓存 前端开发 容器
HarmonyOS Next快速入门:网格布局(Grid)
本课程《HarmonyOS Next快速入门》由51CTO出品,讲解HarmonyOS应用开发中的网格布局技术。通过ArkUI的Grid组件实现灵活的响应式页面设计,适用于九宫格、日历等场景。内容涵盖布局原理、代码实现与性能优化技巧,适合初学者快速掌握HarmonyOS前端开发核心技能。点击学习视频版教程,提升实战能力。
324 0
|
内存技术
Synaptics旗下主流WIFI方案选型参考
WIFI行业经过最近十来年的飞速发展,已经显得含金量不高,遍地都是,但是稳定性是检验WIFI品质的唯一标准,潮起潮落,时间会告诉你最终谁是最可靠! WIFI方案方案选型最主要考虑以下三点:WIFI/BT通信标准、通信接口、吞吐量!接下来析下Synaptics旗下对应的方案! 从WIFI/BT通信标准来看: Wi-Fi 6E有:SYN43756E、SYN43711、SYN4382S、SYN4383; Wi-Fi 6有:SYN43752; Wi-Fi 5有:SYN43598、SYN43456; Wi-Fi 4有:SYN43436、SYN43012、BCM430132;
|
Rust Ubuntu Linux
【一起学Rust | 进阶篇 | RMQTT库】RMQTT消息服务器——安装与集群配置
【一起学Rust | 进阶篇 | RMQTT库】RMQTT消息服务器——安装与集群配置
1268 0
|
前端开发 开发工具 git
一个 git 仓库下拥有多个项目的 git hooks 配置方案
一个 git 仓库下拥有多个项目的 git hooks 配置方案
615 0
|
Java Android开发
Android 保存资源图片到相册最新写法适用于Android10.0及以上
Android 保存资源图片到相册最新写法适用于Android10.0及以上
1476 0
|
存储 机器学习/深度学习 搜索推荐
去中心化的模型训练
去中心化的模型训练(Decentralized Model Training)是一种不依赖单一中心服务器或数据存储中心,而是在多个节点(如设备或数据拥有者)上进行联合训练的方法。这种训练模式可以更好地保护数据隐私、降低数据传输成本,并提升模型的鲁棒性和可扩展性。随着数据安全和隐私保护需求的提升,去中心化训练在深度学习和人工智能应用中的重要性逐渐增加。
788 4
|
Web App开发 JavaScript 前端开发
WebRTC 和 RTC 有什么区别?
【10月更文挑战第25天】WebRTC是RTC的一种具体实现方式,侧重于网页端的实时通信,具有便捷性和跨平台性等特点;而RTC则是一个更广泛的概念,包括了各种不同平台和技术实现的实时通信方式,应用场景更加丰富多样。在实际应用中,需要根据具体的需求和场景选择合适的实时通信技术。
|
JavaScript API 数据安全/隐私保护
数美滑块验证码分析
本文以官网的滑块验证码为例,分析验证过程,完成模拟验证。
2514 0
数美滑块验证码分析