项目列表视图中的按钮,单击它会显示一个上下文菜单

Posted

技术标签:

【中文标题】项目列表视图中的按钮,单击它会显示一个上下文菜单【英文标题】:Button inside an item listview that on click it shows me a Context Menu 【发布时间】:2021-11-02 13:46:55 【问题描述】:

如您所见,我在单击 ListView 中的某个项目时会显示一个上下文菜单的按钮时遇到问题。我尝试了很多关于它的教程,但是我想尝试这个东西并且我没有工作:

button.setOnClickListener(new View.OnClickListener() 
        @Override
        public void onClick(View view) 
            registerForContextMenu(button);
            openContextMenu(button);
        
    );

但是它崩溃了..我用它代替它也没有一个按钮但是在按下项目 ListView 时它会出现上下文菜单并且它可以工作并且我做了类似的事情

registerForContextMenu(listView_songs);

然后我有这个代码:

@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) 
    super.onCreateContextMenu(menu, v, menuInfo);

    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menuset, menu);
    menu.setHeaderTitle("Set as");



@Override
public boolean onContextItemSelected(@NonNull MenuItem item) 

    if(item.getItemId() == R.id.as_ringtone)
        Toast.makeText(this, "TryRingtone", Toast.LENGTH_SHORT).show();
        return true;
    else if(item.getItemId() == R.id.as_notify)
        Toast.makeText(this, "Try Notification", Toast.LENGTH_SHORT).show();
    else
        return false;
    
    return super.onContextItemSelected(item);

有人可以帮我找到一种在每个 Item ListView 中放置一个按钮并向我显示上下文菜单的方法吗?我想得到这样的东西

enter image description here

谢谢..

【问题讨论】:

你最好和recyclerview合作 【参考方案1】:

首先,建议使用 RecyclerView 而不是 ListView。它更具可定制性。 其次,它被称为弹出菜单或溢出菜单。你可以找到更多关于这个link的信息

希望对你有帮助,如果有任何问题,请告诉我

【讨论】:

老兄,首先感谢您宝贵的时间。但是我遇到了一个问题。我尝试按照您的说法构建弹出菜单,但出现此错误:ibb.co/nnmtJWW

以上是关于项目列表视图中的按钮,单击它会显示一个上下文菜单的主要内容,如果未能解决你的问题,请参考以下文章

如何在保留 onClickListener 的同时将菜单按钮添加到列表视图?

右键单击列表视图以显示 contextmenustrip,但弹出菜单出现在屏幕的不相关点

单击按钮时的列表视图

带有列表子项可聚焦android的列表视图上下文菜单

ember.js 从另一个视图更改视图

如何获取所选列表视图项中的id以打开上下文菜单并通过下一个活动来实现目标。