【问题标题】:I have a listview, on click appears a context menu. Any way to know the context menu over which listview item appeared?我有一个列表视图,单击时会出现一个上下文菜单。有什么方法可以知道出现哪个列表视图项的上下文菜单?
【发布时间】:2015-06-09 23:39:23
【问题描述】:

有一个列表视图,单击时会出现一个上下文菜单。有什么方法可以知道哪个列表视图项出现的上下文菜单?

【问题讨论】:

  • 等等,你想告诉上下文菜单哪个列表项被点击了吗?
  • 是的。在上下文菜单出现后,我知道哪个列表视图项目被点击了?

标签: android listview onclick android-contextmenu


【解决方案1】:
int listViewPosition;
listview.setOnItemClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view,
        int position, long id) {
        listViewPosition = position;
    }
 });

那么你可以在

中使用listViewPosition
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo){
    Log.d("ListView clicked Item", ""+listViewPosition);
    // rest of code
}

【讨论】:

  • @user3190360 欢迎来到 Stackoverflow,为您提供一些仅供参考的信息,请始终支持对您有帮助的答案,否则其他人会感到气馁。快乐编码!!
【解决方案2】:

您从列表视图中获取所选项目:

lv.getSelectedItem()

【讨论】:

    【解决方案3】:

    你可以使用:

    listview.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {
    
        }
     });
    

    其中positionListView 中被点击的项目的位置。

    【讨论】:

    • 是的,我知道,但是 public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) 是另一种方法,我需要这个。
    • 当项目被点击时,您可以将位置或对象保存在一个字段中(在您的活动开始时声明它),然后在 OnCreateContextMenu 中您可以轻松访问该字段。
    • 是的,但是长按时会出现上下文菜单,而 clickListener 在长按时什么也不做,所以我无法保存 id。
    • 然后改用setOnItemLongClickListener
    猜你喜欢
    • 1970-01-01
    • 2021-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多