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:

  • Honeycomb ActionBar Titel Schatten
  • FragmentPagerAdapter getItem wird nicht ausgelöst
  • Anpassen von Android Intent.ACTION_SEND
  • Wie generiert man Links zu der andern Klassenreferenz in javadoc?
  • Android Skalierung / Transformation Leinwand nicht ändern klickbaren Bereich
  • So fügen Sie Recycling-Ansicht in Layout-XML hinzu
  •  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: Wie stelle ich die Zoom-Ebene der Kartenansicht auf 1 km Radius um meine aktuelle Position?
  • Zuhörer vs Handler in Android
  • Erstellen eines Digital Clock Widget mit einer benutzerdefinierten Schriftart
  • OnClick-Methode funktioniert nicht ordnungsgemäß, nachdem NestedScrollView gescrollt wurde
  • Android PagerAdapter nicht aufrufen instantiateItem
  • Wie kann man das Symbol eines Knopfes programmgesteuert ändern?
  • 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.