1

我正在尝试在我的应用程序中实现 BottomSheet。我正在学习安卓。我已经按照这里库页面中给出的说明实现了它。我使用了如下的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。我怎样才能使该菜单工作?

4

3 回答 3

1

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

    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();
于 2016-06-29T13:22:46.867 回答
0

new BottomSheet.Builder(QuoteViewActivity.this)传递保存在方法中的活动上下文onCreate或保存在方法中的片段中onAttach(Context mContext)

希望这可以帮助。

于 2016-06-29T12:45:58.940 回答
0

问题就在这里

 .setListener(QuoteViewActivity.this)

你有这样的 setListener

.setListener(this)
于 2016-06-29T12:51:48.570 回答