我使用自定义适配器为我的ListView扩展了CursorAdapter。在我调用onCreate()
的{{1}}方法中,registerForContextMenu(lw)
成功创建了ListView的上下文菜单,但在单击菜单项后,未调用onCreateContextMenu()
方法。
onContextItemSelected()
创建菜单:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list);
linlay = (LinearLayout) findViewById(R.id.activity_list);
lw = new ListView(this);
lw.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT));
linlay.addView(lw);
//some operations for init adapter;
lw.setAdapter(adapter);
registerForContextMenu(lw);
}
菜单项选择:
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
switch (code) {
case C.modeFriends:
menu.add(0, 10, 0, R.string.action_change_birthday);
menu.add(0, 11, 0, R.string.action_change_template);
break;
case C.modeTemplate:
menu.add(0, 20, 0, R.string.action_edit);
menu.add(0, 21, 0, R.string.action_delete);
break;
}
在自定义CursorAdapter中,我覆盖了newView()和bindView()方法。
P.S。 Activity类扩展了ActionBarActivity类。
P.S.2我设置了一个断点,但调试器从未停止过这个断点。
答案 0 :(得分:0)
您应该使用item.getItemId来获取正确的项目。试试吧。