繁体   English   中英

如何在 ListView 中实现自定义视图的上下文菜单?

[英]How to implement Context menu for custom view in ListView?

我正在处理 Android ICS 联系人移植。 我想为 starred(favorites) TAB 添加一个上下文菜单,但该 Fragment 中的 ListView 非常特殊。 有一个普通的 ListView,ListView 中的每个项目都有两个小的自定义视图。 我想实现当用户长时间按下小视图时,它会为我显示一个上下文菜单。 我该怎么做? 请给我一个提示! 非常感谢!

在你创建小视图的地方添加这个,

    registerForContextMenu(YourSmallView);  

在您的活动中,您可以处理上下文菜单

 @Override  
   public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {  
super.onCreateContextMenu(menu, v, menuInfo);  
    menu.setHeaderTitle("Context Menu");  
    menu.add(0, v.getId(), 0, "Action 1");  
    menu.add(0, v.getId(), 0, "Action 2");  
}  

 @Override  
   public boolean onContextItemSelected(MenuItem item) {  
        if(item.getTitle()=="Action 1"){
              function1(item.getItemId());
        }  
        else if(item.getTitle()=="Action 2"){
             function2(item.getItemId());
         }  
        else {
            return false;
        }  
    return true;  
    }  

或者您可以为您的视图设置一个长按监听器

view.setOnLongClickListener(listener);

如果您使用自定义的列表项,您可以在您想要的视图上注册一个特定的回调例程。 执行此操作的位置是在您的 bindView() 或 getView() 方法中。

TextView tt = (TextView) v.findViewById(R.id.text1);
TextView bt = (TextView) v.findViewById(R.id.text2);
tt.setOnLongClickListener(myLongOnClickListener);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM