Android listview 加入context menu

来源:互联网 发布:金和网络股份有限公司 编辑:程序博客网 时间:2024/05/03 00:19

参考 http://www.cnblogs.com/hibraincol/archive/2010/09/30/1839014.html

    private static final int ITEM1 = Menu.FIRST;
    private static final int ITEM2 = Menu.FIRST+1;
    private static final int ITEM3 = Menu.FIRST+2;


首先要拿到listview,
如果使用ViewPager,在public Object instantiateItem(ViewGroup container, int position) 中,

当实际获取到要显示数据用的listview的时候,再执行注册:

videoListView=(ListView)findViewById(R.id.PhoneVideoList);

注册
registerForContextMenu(videoListView);


弹出菜单

@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
Log.e(TAG,"onCreateContextMenu");
// TODO Auto-generated method stub
//super.onCreateContextMenu(menu, v, menuInfo);
   menu.setHeaderTitle("爱生活");
       //添加菜单项
       menu.add(0, ITEM1, 0, "添加收藏");
       menu.add(0, ITEM2, 0, "取消收藏");
       menu.add(0, ITEM3, 0, "查看收藏");
}


菜单项响应:

@Override
public boolean onContextItemSelected(MenuItem item) {
// TODO Auto-generated method stub
//return super.onContextItemSelected(item);

        //获取当前被选择的菜单项的信息
        //AdapterContextMenuInfo info = (AdapterContextMenuInfo)item.getMenuInfo();
        //Log.i("braincol",String.valueOf(info.id));        
        switch(item.getItemId()){
        case ITEM1:
            //在这里添加处理代码
            
            break;
        case ITEM2:
            //在这里添加处理代码
            
            break;    
        case ITEM3:
            //在这里添加处理代码
            
            break;
        }
        return true; 
}

0 0