java - 在应用程序中实现 BottomSheet

标签 java android onclicklistener bottom-sheet

我正在尝试在我的应用程序中实现 BottomSheet。我正在学习安卓。我已经按照图书馆页面 here 中给出的说明实现了它.我使用了如下的 Java 代码。

findViewById(R.id.butShare).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new BottomSheet.Builder(QuoteViewActivity.this)
                .setSheet(R.menu.grid_sheet)
                .grid()
                .setTitle("Lets Some Fun")
                .setListener(QuoteViewActivity.this)
                .show();
            }
        });

但是我收到类似

的错误
The method setListener(BottomSheetListener) in the type BottomSheet.Builder is not applicable for the arguments (QuoteViewActivity)

我也在菜单文件夹中创建了名为 grid_sheet 的菜单 xml。我怎样才能使该菜单正常工作?

最佳答案

错误与 setListener(QuoteViewActivity.this) 有关。 SetListener() 需要 BottomSheetListener 而不是 Activity 上下文。尝试 setListener(new BottomSheetListener()) 并覆盖下面给出的接口(interface)方法。

    new BottomSheet.Builder(MainActivity.this)
                    .setSheet(R.menu.menu)
                    .grid()
                    .setTitle("Lets Some Fun")
                    .setListener(new BottomSheetListener() {
                        @Override
                        public void onSheetShown(@NonNull BottomSheet bottomSheet) {

                        }

                        @Override
                        public void onSheetItemSelected(@NonNull BottomSheet bottomSheet, MenuItem menuItem) {
                                if(menuItem.getItemId() == R.id.share) {
                                Toast.makeText(MainActivity.this, "Share" , Toast.LENGTH_LONG).show();
                            }
                        }

                        @Override
                        public void onSheetDismissed(@NonNull BottomSheet bottomSheet, int i) {

                        }
                    })
                    .show();

关于java - 在应用程序中实现 BottomSheet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38099846/

相关文章:

java - ImageView onClickListener()

java - 按下时按钮没有反应

java - 使用 Java 和 Hibernate 存储历史数据

java - 在 cygwin 上编译 hsdis(Java HotSpot 反汇编程序插件)时出现错误的 reloc 地址 0x0

java - RecyclerView不显示任何项目

android - 带圆边的 ActionBar

javascript - 将 Base64 编码的图像作为字符串发送到 Chromecast

java - 序列化/反序列化 ClassCastException : x cannot be cast to java. io.ObjectStreamClass

java - Android 与 servlet 或 mysql 数据库的集成

android - Textview clickable false 不起作用