【问题标题】:Android onContextItemSelected() not calls for ListView in ActionBarActivityAndroid onContextItemSelected() 不调用 ActionBarActivity 中的 ListView
【发布时间】:2014-07-17 22:39:21
【问题描述】:

我为我的 ListView 使用扩展 CursorAdapter 的自定义适配器。在我调用registerForContextMenu(lw)onCreate()方法中,onCreateContextMenu()成功创建了ListView的上下文菜单,但是在单击菜单项后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;
    }

菜单项选择:

@Override
public boolean onContextItemSelected(android.view.MenuItem item) {
    switch(item.getItemId(){
    case 10:

        break;
    case 11:

        break;
    case 20:

        break;
    case 21:

        break;
    }
}

在自定义 CursorAdapter 中,我重写了 newView() 和 bindView() 方法。

附: Activity 类扩展了 ActionBarActivity 类。

P.S.2 我设置了一个断点,但是调试器从来没有在这个断点处停止过。

【问题讨论】:

  • 你能放一些代码吗?
  • @Mehul Shah,你可以看到我的部分代码。

标签: android listview menu android-cursoradapter


【解决方案1】:

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

【讨论】:

  • 你说得对,item没有getId()方法,我用getItemId(),但是没有解决我的问题。
  • 尝试输入一些合法的代码。它令人困惑。你怎么知道你没有得到 onContextItemSelected?你有任何日志标记或祝酒词吗?
猜你喜欢
  • 1970-01-01
  • 2016-10-19
  • 1970-01-01
  • 1970-01-01
  • 2012-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多