2016-07-04 15 views
0

nicht implementieren Ich verwende this library, und ich folge, was es sagt.Kann DatePickerDialog auf Android

Ich habe diese Umsetzung meiner Klasse hinzugefügt:

implements com.wdullaer.materialdatetimepicker.date.DatePickerDialog.OnDateSetListener

Und dieser Methode:

@Override 
public void onDateSet(DatePickerDialog view, int year, int monthOfYear, int dayOfMonth) { 
    String date = "You picked the following date: "+dayOfMonth+"/"+(monthOfYear+1)+"/"+year; 
} 

Aber aus irgendeinem Grund bekomme ich den Fehler:

Class 'xxxx' must be either declared abstract or implement abstract method 'onDateSet(..)

Ich habe auch die Probe gesehen, und ich habe das gleiche getan, was es dort tut.

+1

Ich würde vermuten, dass der 'DatePickerDialog' Parametertyp für Ihre' onDateSet() 'Methode der falsche ist. Es sollte wahrscheinlich "com.wdullaer.materialdatetimepicker.date.DatePickerDialog" sein, nicht "android.app.DatePickerDialog", was Sie wahrscheinlich importiert haben. Sie könnten dort den vollständig qualifizierten Klassennamen verwenden oder Ihre 'import'-Anweisung ändern. –

+1

@MikeM. Du bist eine Legende. Poste dies als Antwort, damit ich es markieren und zukünftigen Lesern helfen kann. –

Antwort

1

Wenn Sie eine Fehlermeldung wie diese erhalten, aber Sie haben bereits eine Methode mit dem angegebenen Namen, bedeutet dies normalerweise, dass die Signatur falsch ist. In diesem Fall ist es ziemlich wahrscheinlich, dass der DatePickerDialog Typ für den ersten Parameter der falsche ist, da int s int s überall sind. Wenn Ihre IDE eine DatePickerDialog Klasse automatisch importiert hat, hat sie wahrscheinlich android.app.DatePickerDialog gewählt. Diese Schnittstelle erwartet jedoch com.wdullaer.materialdatetimepicker.date.DatePickerDialog. Sie können entweder den vollständig qualifizierten Klassennamen in der Methodensignatur verwenden oder einfach Ihre import-Anweisung ändern, um auf die korrekte Klasse zu verweisen.