Android - ListView - 上下文菜单无法正常工作

时间:2014-01-22 01:10:38

标签: android android-contextmenu

我有ListFragment,我使用registerForContextMenu()注册了上下文菜单,并覆盖了onCreateContextMenu()。 问题是,当我长按任何项目时,onCreateContextMenu()永远不会被调用。

以下是一些代码:

public class List_F extends ListFragment {
    @Override
    public void onActivityCreated(Bundle arg0) {
        super.onActivityCreated(arg0);

        registerForContextMenu(getListView());

        setListAdapter(...);
        setListShown(false);

        // launch cursor loader
    }

    @Override
    public void onCreateContextMenu(ContextMenu menu, View v,
                                    ContextMenu.ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        MenuInflater inflater = getActivity().getMenuInflater();
        inflater.inflate(R.menu.menu, menu);
    }

    @Override
    public boolean onContextItemSelected(MenuItem item) {
        AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
        int i = item.getItemId();
        if (i == R.id.menu_item_delete) {
            delete(info.id);
            return true;
        } else {
            return super.onContextItemSelected(item);
        }
    }
}

知道为什么吗?

我也试过

getListView().setOnItemLongClickListener() 

它甚至没有被召唤。

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

找到了罪魁祸首!

我在OnClickListener的视图上设置了Adapter

这可能正在吃长篇大论。

我将每个视图中的OnClickListener更改为OnItemClickListener

上的ListView