Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在xamarin中设置onclick侦听器?_C#_Android_Xamarin_Xamarin.android - Fatal编程技术网

C# 如何在xamarin中设置onclick侦听器?

C# 如何在xamarin中设置onclick侦听器?,c#,android,xamarin,xamarin.android,C#,Android,Xamarin,Xamarin.android,我对C#和Xamarin是个新手,一直在尝试实现一个底层表单元素,但不知道如何正确地实现它。我正在使用图书馆 这是我的密码: Cocosw.BottomSheetActions.BottomSheet.Builder b = new Cocosw.BottomSheetActions.BottomSheet.Builder (this); b.Title ("New"); b.Sheet (Resource.Layout.menu_bottom_sheet) 现在我想我应该使用b.Listen

我对C#和Xamarin是个新手,一直在尝试实现一个底层表单元素,但不知道如何正确地实现它。我正在使用图书馆

这是我的密码:

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());

但它不起作用。

改用单击事件

button.Click += delegate 
{
    //Your code
};

查看my other以了解更多信息

最简单的方法实际上是使用每个视图上都可用的
单击事件。但是,为了实现
IOnClickListener
(或也是
IJavaObject
的任何其他接口),您需要使实现它的类继承自:


这样,您就不需要实现
IntPtr Handle
,您的代码就可以正常工作了

我正在使用第三方库,它需要
IDialogInterfaceOnClickListener
,因此我不能使用
单击
事件,但我可以尝试从
Java.Lang.Object
继承,谢谢。这与setOnClickListener函数的工作原理不同。使用代码中显示的事件会导致某些问题,例如事件重叠setOnClickListener是一个更稳定的选项。
internal class BottomSheetActions : Java.Lang.Object, IDialogInterfaceOnClickListener 
{
    public void OnClick (IDialogInterface dialog, int which)
    {
        Console.WriteLine ("Hello fox");
    }
}