Xamarin.Android: Wie zu erfassen Button-Events im OnClick XML-Attribut definiert?

Ich habe diesen Button in einem RelativeLayout, das als Teil eines benutzerdefinierten ListView Zeilenlayouts enthalten ist.

<Button p1:text="Edit" p1:layout_width="75dp" p1:layout_height="wrap_content" p1:id="@+id/editButton" p1:layout_centerHorizontal="true" p1:background="@drawable/btn_blue" p1:textColor="@color/white" p1:focusable="false" p1:layout_below="@id/sparyTableLayout" p1:textAppearance="?android:attr/textAppearanceMedium" p1:onClick="myClickHandler" /> 

Wenn der Benutzer auf die Schaltfläche klickt, möchte ich, dass die Schaltfläche diese Funktion aufruft:

  • Google Cloud Messaging - Nachrichten entweder sofort oder mit langer Verzögerung empfangen
  • ASP.NET-Web-API-Authentifizierung
  • Wie kann ich Asynctask-Thread in Android stoppen?
  • Kann nicht dex2jar auf meinem mac verwenden: permission denied
  • Wie kann man HttpURLConnection.getInputStream () stoppen?
  • DialogFrag # show () aus einem Fragment werfen "IllegalStateException: Kann diese Aktion nach onSaveInstanceState nicht ausführen"
  •  public void myClickHandler(View v) { Console.WriteLine ((v as Button).Text); } 

    Allerdings bekomme ich diesen Fehler

     java.lang.IllegalStateException: Could not find a method myClickHandler(View) in the activity class Test_Project.MyActivity for onClick handler on view class android.widget.Button with id 'editButton' 

    Ich versuche, zwischen den verschiedenen Tasten zu unterscheiden, die ich in diesem ListView habe. Außerdem hat jede Zeile mehrere Schaltflächen.

    Bearbeiten:

    Verwenden Sie keine Tags in Schaltflächen, die während des ListView-Scrolls einen Leistungsabfall verursachen können. Die Lösung unten ist eine bessere Option.

  • Android v7 Toolbar Schaltflächenausrichtung
  • Zurück-Taste und erfrischende vorherige Aktivität
  • Der aktualisierte APK kann nicht in den Google Play Store geladen werden
  • Android: Ist es möglich, ein xml zeichnen zu skalieren?
  • Timeout in DefaultHttpClient Class Android
  • Verständnis von RecyclerView setHasFixedSize
  • One Solution collect form web for “Xamarin.Android: Wie zu erfassen Button-Events im OnClick XML-Attribut definiert?”

    Fügen Sie das Attribut [Java.Interop.Export] zu Ihrer Click-Handler-Methode hinzu:

     [Java.Interop.Export("myClickHandler")] // The value found in android:onClick attribute. public void myClickHandler(View v) // Does not need to match value in above attribute. { Console.WriteLine ((v as Button).Text); } 

    Dadurch wird die Methode Java über den generierten Callable Wrapper für Ihre Aktivität ausgesetzt, damit er aus der Java-Laufzeit aufgerufen werden kann.

    Sehen:

    1. Mono Für Android 4.2 Release Notes im Abschnitt "Exportieren beliebigen Java-Mitglied für eine bessere Java-Integration".

    Wichtige Notiz

    Mit [Java.Interop.Export] müssen Sie die Mono.Android.Export Assembly zu Ihrem Projekt hinzufügen.

    Deshalb ist diese Funktion nur für Indie und höhere Lizenzen verfügbar.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.