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

相关文章
|
芯片 算法 异构计算
如何打破边缘端芯片算力有限的困局?阿里 AILabs 这么做!
在自研硬件上,和芯片厂商深度合作针对中低端芯片做出了特例优化,落地了手势识别、宠物检测和笔尖检测等业务。
3947 0
|
10月前
|
前端开发
在Promise链中,如果前面的catch方法没有捕获到错误,后面的catch方法还会执行吗?
在Promise链中,如果前面的catch方法没有捕获到错误,后面的catch方法还会执行吗?
296 58
|
10月前
|
机器学习/深度学习 计算机视觉
RT-DETR改进策略【RT-DETR和Mamba】| 替换骨干 Mamba-RT-DETR-L !!! 最新的发文热点
RT-DETR改进策略【RT-DETR和Mamba】| 替换骨干 Mamba-RT-DETR-L !!! 最新的发文热点
223 3
RT-DETR改进策略【RT-DETR和Mamba】| 替换骨干 Mamba-RT-DETR-L !!! 最新的发文热点
|
存储
硬盘碎片整理的原理是什么?
硬盘碎片整理的原理是什么?
722 4
|
JavaScript 前端开发
JavaScript 中的 NaN:非数字值的深入解析
【8月更文挑战第31天】
648 1
|
网络协议 数据安全/隐私保护 网络架构
|
前端开发 API 数据安全/隐私保护
API接口签名验证
过去对于接口的验证我一般都是直接在登录时为用户发放token,用户在随后的操作中携带了token则允许请求。 但是这样的验证方式存在有一定的问题,如果token被泄露被他人获取,那么就会有非法请求的风险。其他人可以使用这个token自行调用接口进行请求,传入非法参数甚至进行注入攻击等,可能会造成严重的问题。
|
前端开发 JavaScript API
浅谈移动端页面无刷新跳转问题的解决方案
浅谈移动端页面无刷新跳转问题的解决方案
338 0
|
机器学习/深度学习 算法 数据挖掘
Sentieon DNAscope:适配多测序平台数据的快速精准分析流程
Sentieon DNAscope:适配多测序平台数据的快速精准分析流程
460 0