我正在开发Android ICS联系人移植。我想为星号(收藏夹)TAB添加上下文菜单,但该片段中的ListView非常特殊。有一个普通的ListView,ListView中的每个项目都有两个小的自定义View。我想实现当用户长按小视图时,它会为我显示一个上下文菜单。 我该怎么办?请给我一个提示!非常感谢!
答案 0 :(得分:1)
在您创建小视图的位置添加此内容,
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);
答案 1 :(得分:1)
如果您使用的是自定义列表项,则可以在所需视图上注册特定的回调例程。这样做的地方在你的bindView()或getView()方法中。
TextView tt = (TextView) v.findViewById(R.id.text1);
TextView bt = (TextView) v.findViewById(R.id.text2);
tt.setOnLongClickListener(myLongOnClickListener);