Intereting Posts
Вызов SetContentView () из широковещательного приемника Макет для планшетов в Android AndroidHttpClient не может getEntity (). GetContent () после закрытия Альтернатива MediaStore.Playlists.Members.moveItem Не удалось выполнить «play» в «HTMLMediaElement»: API может быть инициирован только жестом пользователя BroadcastReceiver не получает трансляцию Анимировать элемент ListView для мусора Получите список приложений, способных обрабатывать намерение SEND для отображения в представлении (а не всплывающем диалоговом окне) Могу ли я отключить systemui Из моего приложения для Android? Android Studio запускает приложение / тест напрямую, если ничего не меняется Как читать / перехватывать сообщение USSD на Android-телефоне Как добавить Canvas в определенный LinearLayout? Indic-text-renderer с использованием harfbuzz и freetype Как мы можем использовать встроенный код YouTube в приложении для Android с помощью webview? Модернизация 2: Как установить индивидуальные тайм-ауты по конкретным запросам?

Событие Mono Droid onClick не найдено

У меня есть следующий макет:

<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" /> 

И это в моей деятельности:

 [Activity(Label = "LayoutTest", MainLauncher = true, Icon = "@drawable/icon")] public class Activity1 : Activity { protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.Main); } public void Foo(View v) { Toast.MakeText(v.Context, "Bar", ToastLength.Long).Show(); } } 

Когда я отлаживаю это в эмуляторе, приложение падает, когда я нажимаю 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 теперь поддерживает это: http://docs.xamarin.com/guides/android/advanced_topics/java_integration_overview/working_with_jni/#_ExportAttribute_and_ExportFieldAttribute

В дополнение к [Export ("javamethodname")] в методах Mono.Android.Export и ссылке на Mono.Android.Export , вам также нужно

 using Java.Interop;