• android 长按 ListView 无法弹出 ContextMeun


    可能的原因:

    onItemLongClick 消费了长按事件

    1. mListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
    2. @Override
    3. public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
    4. mApSelect = position;
    5. Log.d(TAG, "onItemLongClick:" + mApSelect);
    6. return false;
    7. }
    8. });
    关键在 onItemLongClick 函数的返回值,看文档注释:
    1. /**
    2. * Callback method to be invoked when an item in this view has been
    3. * clicked and held.
    4. *
    5. * Implementers can call getItemAtPosition(position) if they need to access
    6. * the data associated with the selected item.
    7. *
    8. * @param parent The AbsListView where the click happened
    9. * @param view The view within the AbsListView that was clicked
    10. * @param position The position of the view in the list
    11. * @param id The row id of the item that was clicked
    12. *
    13. * @return true if the callback consumed the long click, false otherwise
    14. */
    如果返回 ture,系统认为用户实现的回调函数已经处理完了长按事件。而弹出 ContextMenu 也是长按事件的响应,且在 onItemLongClick 响应之后,所以返回 true 导致 ContextMenu 无法弹出。




  • 相关阅读:
    【汇编程序】出地址为BUF的5个字符数组的内容之和
    Ugly Number
    Best Time to Buy and Sell Stock IV****
    Best Time to Buy and Sell Stock III
    Best Time to Buy and Sell Stock
    Best Time to Buy and Sell Stock II
    House Robber II
    Contain Duplicate III*******
    Contain Duplicate II
    Contain Duplicate
  • 原文地址:https://www.cnblogs.com/JonnyLulu/p/4462642.html
Copyright © 2020-2023  润新知