首页 > 解决方案 > 项目列表视图中的按钮,单击它会显示一个上下文菜单

问题描述

正如您所读到的,我有一个关于在单击 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 中放置一个按钮并向我显示上下文菜单的方法吗?我想获得这样的东西

在此处输入图像描述

谢谢..

标签: javaandroidandroid-studiolistview

解决方案


首先,建议使用 RecyclerView 而不是 ListView。它更具可定制性。其次,它被称为弹出菜单或溢出菜单。您可以在此链接上找到更多信息

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


推荐阅读