我正在尝试在我的应用程序中实现 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/