在Application中实现BottomSheet

时间:2016-06-29 12:39:18

标签: java android onclicklistener bottom-sheet

我正在尝试将BottomSheet实现到我的应用程序中。我正在学习android。我按照库页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。如何使该菜单有效?

3 个答案:

答案 0 :(得分: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();

答案 1 :(得分:0)

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

希望这有帮助。

答案 2 :(得分:0)

问题在这里

 .setListener(QuoteViewActivity.this)

你有像这样的setListener

.setListener(this)