Hallo Renato,
du darfst nicht 2 unterschiedliche Konzepte durcheinanderwerfen.
In Activities kann this ein Context sein, weil jede Activity von Context erbt.
Aber andersrum gilt das nicht, du kannst nicht einen belibigen Kontext in eine Activity umwandeln.
Zudem solltest du im Hinterkopf behalten, dass der ApplicationContext nicht das selbe wie der Context in "this" oder equivalent in getContext() ist.
Das Schlüsselwort "this" bezieht sich immer auf die akutelle Klasseninstanz, in dem Fall deine Activty.
Aber machen wir das etwas einfacher:
Stell dir vor du hast eine Klasse Haus und diese initialisiert du mit einer Person.
also der Constructor Haus(Person p)
Dann hast du so ein Konstrukt:
class Person{
private String vorname:
private String nachname;
private Haus house;
//getter und setter implizit.
public void buildHouse(){ //Erstelle neues Haus
this.house = new Haus(this);
//das erste this gibt an, dass sich die variable in der aktuellen Klasse befindet und das this im Parameter übergibt die aktuelle Instanz (konkrete Person) an das Hausobjekt.
}
}
Aber das sind OOP Grundlagen, die kann ich hier nicht noch detallierter ausführen.
In deinem Fall hast du ein Listener für ItemSelected. Ein Listener ist ein Interface und so will der übergebenen Parameter eine implementierung für dieses Interface übergeben haben.
Du hast aber keine extra implementierung erstellt, sondern bei deiner Activity gesagt "implements OnSelectedItemListener" und den Listener in der Acitivty definiert.
Damit hast du deine aktuelle Klasse "this" um diesen listener erweitert und die Activity implementiert dieses Interface.
Somit kannst du this als Parameter übergeben, da deine Activity die passenden voraussetzungen erfüllt.
Ein Context implementiert keinen Listener, darum kannst du diesen auch nicht übergeben.
Aber hast du dir mal angeschaut, was die Methode überhaupt als Parameter akzeptiert?
Dann wäre dir schnell aufgefallen, dass der Paramerer kein Context sein kann.
Nur weil du an anderen Stellen this als alternative zum Context einsetzen kannst, heißt das nicht, dass du nun den Context anstelle von This oder einer konkreten Implementierung des Interface nutzen kannst.
LG Pascal //It's not a bug, it's a feature.
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.