Art*_*nis 16 c# android xamarin.android xamarin
我对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)
Run Code Online (Sandbox Code Playgroud)
现在我认为我应该使用b.Listener(...),但它需要一个接口IDialogInterfaceOnClickListener作为参数,我不知道如何正确地在C#中做到这一点.
在Java中我可以写
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Perform action on click
}
});
Run Code Online (Sandbox Code Playgroud)
我试过这样做:
class BottomSheetActions : IDialogInterfaceOnClickListener {
public void OnClick (IDialogInterface dialog, int which) {
Console.WriteLine ("Hello fox");
}
public IntPtr Handle { get; }
public void Dispose() {
}
}
Run Code Online (Sandbox Code Playgroud)
然后这个:
b.Listener (new BottomSheetActions());
Run Code Online (Sandbox Code Playgroud)
但它没有用.
Let*_*tor 22
请改用点击事件.
button.Click += delegate
{
//Your code
};
Run Code Online (Sandbox Code Playgroud)
请参阅我的其他答案以获取更多信息
Wil*_*osa 13
最简单的方法是使用Click每个View上可用的事件.但是,为了实现IOnClickListener(或任何其他接口也是如此IJavaObject),您需要使实现它的类继承自Java.Lang.Object:
internal class BottomSheetActions : Java.Lang.Object, IDialogInterfaceOnClickListener
{
public void OnClick (IDialogInterface dialog, int which)
{
Console.WriteLine ("Hello fox");
}
}
Run Code Online (Sandbox Code Playgroud)
这样您就不需要实现了IntPtr Handle,您的代码也可以正常工作
| 归档时间: |
|
| 查看次数: |
23001 次 |
| 最近记录: |