我正在尝试将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。如何使该菜单有效?
答案 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)