2017-06-14 6 views
0

Ich arbeite derzeit an einem Xamarin PCL-Projekt auf VS2017. Unter Android-Projekt habe ich eine Klasse namens TestBtn erstellt. Der Code ist wie folgt. Ich folgte den Metadaten der Schaltfläche und erklärte den Konstruktor entsprechend, wie unten gezeigt. Aber ich bekomme einen Fehler von Button enthält keinen Konstruktor, der 0 Argument nimmt.Schaltfläche enthält keinen Konstruktor, der 0 Argument

Irgendeine Idee, warum ich diesen Fehler bekomme?

namespace CustomRibbonRenderer.Droid 
{ 
    public class TestBtn: Button 
    { 
     public TestBtn(Context context) 
     { 

     } 
    } 
} 
+0

'öffentliche TestBtn (Kontext Kontext, IAttributeSet AttributSet): Base (Kontext, AttributSet) {}' - versuchen Sie dies – Yupi

+0

Cool es funktioniert. Danke Yupi! : D Irgendeine Idee warum der: base (context) benötigt wird? –

+0

Es ist erforderlich, die .NET-Darstellung von 'Button' mit der Android/Java-Runtime-Version von' Button' zu verknüpfen. Dadurch kann die Xamarin.Android-Laufzeit es instanziieren. – matthewrdev

Antwort

1

Button repräsentiert ein Tasten-Widget. Drucktasten können vom Benutzer gedrückt oder angeklickt werden, um eine Aktion auszuführen. Acording zum Xamarin Dokumentation Button Klasse akzeptiert 4 öffentliche Bauherren und eine geschützte:

Button(Context) 
Button(Context, IAttributeSet) 
Button(Context, IAttributeSet, Int32) 
Button(Context, IAttributeSet, Int32, Int32) 

Fehler wurde im Code erscheinen, weil Sie nicht base() angerufen hat. base Schlüsselwort wird in Konstruktoren verwendet. Ein abgeleiteter Klassenkonstruktor muss den Konstruktor von seiner Basisklasse aus aufrufen.

0

Sie haben einen Konstruktor, der ein Argument (Kontext) benötigt. Fehler kann auftreten, wenn TestBtn ohne Argumente initialisiert wird.

Verwandte Themen