私は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#でそれを正しく行う方法がわからない。
In 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());
_
しかし、うまくいきませんでした。
最も簡単な方法は、実際にすべてのビューで使用可能な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
を実装する必要がなく、コードは問題なく動作します