Android onContextItemSelected()不在ActionBarActivity中调用ListView

时间:2014-07-17 22:39:21

标签: android listview menu android-cursoradapter

我使用自定义适配器为我的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我设置了一个断点,但调试器从未停止过这个断点。

1 个答案:

答案 0 :(得分:0)

您应该使用item.getItemId来获取正确的项目。试试吧。