我对C#和Xamarin很陌生,并且一直试图实现底层元素并且不知道如何正确地执行它。我正在使用Cocosw.BottomSheet-Xamarin.Android库。
这是我的代码:
Cocosw.BottomSheetActions.BottomSheet.Builder b = new Cocosw.BottomSheetActions.BottomSheet.Builder (this);
b.Title ("New");
b.Sheet (Resource.Layout.menu_bottom_sheet)
现在我想我应该使用b.Listener(...)
,但它需要一个接口IDialogInterfaceOnClickListener
作为参数,我不知道如何正确地使用C#。
在Java中我可以写
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
}
});
我试过这样做:
class BottomSheetActions : IDialogInterfaceOnClickListener {
public void OnClick (IDialogInterface dialog, int which) {
Console.WriteLine ("Hello fox");
}
public IntPtr Handle { get; }
public void Dispose() {
}
}
然后这个:
b.Listener (new BottomSheetActions());
但它没有用。
答案 0 :(得分:22)
答案 1 :(得分:12)
最简单的方法是使用每个View上可用的Click
事件。但是,为了实现IOnClickListener
(或任何其他也是IJavaObject
的接口),您需要使实现它的类继承自Java.Lang.Object
:
internal class BottomSheetActions : Java.Lang.Object, IDialogInterfaceOnClickListener
{
public void OnClick (IDialogInterface dialog, int which)
{
Console.WriteLine ("Hello fox");
}
}
这样您就不需要实现IntPtr Handle
,您的代码就可以正常运行