studio open from custom activity android xamarin.android

android - open - MonoDroid onClick desde XML No such Such Method Error



dialogfragment from activity (3)

LiftInspection.axml

<Button android:id="@+id/expandCollapse1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:drawableLeft="@drawable/expand_arrow" android:text="Function/Controls" android:textSize="20sp" android:textColor="@android:color/white" android:background="@drawable/expandCollapseButton" android:gravity="center" android:onClick="button_Click"/>

LiftInspection.cs

protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.LiftInspection); } public void button_Click(View view) { Toast.MakeText(this, "Testing", ToastLength.Long).Show(); }

Tan pronto como haga clic en el botón, la aplicación se bloquea y se cierra. En el registro de Android, encuentro "java.lang.IllegalStateException: no se pudo encontrar un método button_Click (View) en la clase de actividad cpecfieldapp.LiftInspection para el manejador onClick en la clase de vista android.widget.Button con id''expandCollapse1 ''"

Todo lo que he encontrado al configurar un evento de clic desde xml solo muestra lo que estoy haciendo. Poniéndolo en android: onClick desde XML y teniendo un vacío público donde el único parámetro es una Vista en la actividad que implementa ese diseño. ¿Qué me estoy perdiendo?


Eso no es algo que sea compatible con la versión actual de Mono para Android. Puede consultar este informe de errores para obtener más detalles al respecto.


Esto ahora es posible. Tienes que hacer tres cosas:

  1. Referencia Mono.Android.Export
  2. using Java.Interop
  3. Anota tu método de evento de esta manera:

[Export ("button_Click")] public void button_Click(View view) { Toast.MakeText(this, "Testing", ToastLength.Long).Show(); }


He conseguido que esto funcione al agregar el atributo [Export] a su método button_Click .