Android ListView长按创建上下文菜单

ContextMenu上下文菜单,和电脑上单击鼠标右键出现的快捷菜单等同,即安卓中长按某项(2秒左右)出现的快捷菜单,

ContextMenu上下文菜单创建方法:


1.重写Activity的onCreateContextMenu()方法,调用Menu的add方法添加菜单项
2.重写onContextItemSelected()方法,响应菜单单击事件
3.调用registerForContexMenu()注册上下文菜单


[java] public class TestActivity extends Activity {
    ListView listView;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        listView=(ListView)findViewById(R.id.listView);
        //为listView注册上下文菜单ContextMenu 
        //方法1 
        this.registerForContextMenu(listView);
        //方法2 
        //listView.setOnCreateContextMenuListener(this); 

        String [] s={"特凡·萨尔瓦托 Stefan Salvatore",
                "艾琳娜·吉尔伯特 Elena Gilbert",
                "达蒙·萨尔瓦托 Damon Salvatore",
                "杰里米·吉尔伯特 Jeremy Gilbert",
                "卡罗琳·福布斯 Caroline Forbes"};
        ArrayAdapter aa=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,s);
        listView.setAdapter(aa);
    }
    
    //创建上下文菜单 
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo mi) {
        menu.setHeaderTitle("你猜啊~ 0,0"); 
        //配置上下文菜单选项   
        menu.add(0, Menu.FIRST +1, 1, "海贼王");
        menu.add(0, Menu.FIRST +2, 2, "暮光之城");
        menu.add(0, Menu.FIRST +3, 3, "吸血鬼日记");
        menu.add(0, Menu.FIRST +4, 4, "齐天大圣");
        //super.onCreateContextMenu(menu, v, mi); 
    }
    //响应上下文菜单的点击事件 
    @Override  
    public boolean onContextItemSelected(MenuItem item) {
        if(item.getItemId()==Menu.FIRST + 3){
            Toast.makeText(this, "ORZ,你聪明屎啦!", Toast.LENGTH_SHORT).show();
        }else{
            Toast.makeText(this, "这有个毛联系!", Toast.LENGTH_SHORT).show();
        }
        return super.onContextItemSelected(item);
    }
}

 
  
\

\

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值