C# 未找到Mono Droid onClick事件
我的布局如下:C# 未找到Mono Droid onClick事件,c#,android,mono,xamarin.android,C#,Android,Mono,Xamarin.android,我的布局如下: <Button android:id="@+id/MyButton" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/Hello" android:clickable="true" android:onClick="Foo" /> 当我在emulator中调试时,当我在日志中单击MyB
<Button android:id="@+id/MyButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/Hello"
android:clickable="true"
android:onClick="Foo"
/>
当我在emulator中调试时,当我在日志中单击MyButton并摘录以下内容时,应用程序崩溃:
E/AndroidRuntime( 507): FATAL EXCEPTION: main
E/AndroidRuntime( 507): java.lang.IllegalStateException: Could not find a method Foo(View) in the activity class helloworld.Activity1 for onClick handler on view class android.widget.Button with id 'MyButton'
E/AndroidRuntime( 507): at android.view.View$1.onClick(View.java:2059)
E/AndroidRuntime( 507): at android.view.View.performClick(View.java:2408)
E/AndroidRuntime( 507): at android.view.View$PerformClick.run(View.java:8816)
E/AndroidRuntime( 507): at android.os.Handler.handleCallback(Handler.java:587)
E/AndroidRuntime( 507): at android.os.Handler.dispatchMessage(Handler.java:92)
MonoDroid不支持以这种方式注册事件
您需要自己在活动的OnCreate中连接事件
更新:
作为更新,MonoDroid现在确实支持这一点:除了在
onClick
方法上的[Export(“javamethodname”)]
属性和对Mono.Android.Export
的引用之外,您还需要
using Java.Interop;
那么android:onClick属性的意义是什么呢?我明白了。谢谢有没有关于MonoDroid不支持的文档?投票支持这个回答。但愿我在花时间做这件事之前在别处看到过这些信息。作为一个更新,MonoDroid现在确实支持这个:Nevermind,我想出来了:只需在onClick方法上方抛出一个[Export]属性,并确保在项目中添加对Mono.Android.Export的引用。
using Java.Interop;