Warum Der Konstruktor ArrayAdapterString (new View.OnKeyListener () {}, int, String []) ist nicht definiert

7

Warum Der Konstruktor ArrayAdapter (new View.OnKeyListener () {}, int, String []) ist nach der Codierung nicht definiert. Diese Codierung dient zum Abrufen von Daten von SQLite, wenn die Anzahl der Wörter mehr als 3 Zeichen beträgt. Aber es zeigt den folgenden Fehler an.

  

Der Konstruktor ArrayAdapter (new View.OnKeyListener () {}, int,   String []) ist nicht definiert

%Vor%     
ppshein 16.10.2011, 03:05
quelle

4 Antworten

23

Sie müssen die Verwendung von this qualifizieren, wenn Sie auf die umschließende Klasse einer inneren Klasse verweisen wollen. Wenn in Ihrem Code die einschließende Klasse Ihre Aktivitätsunterklasse ist (sagen wir, sie heißt MyActivity), dann würden Sie schreiben:

%Vor%     
Ted Hopp 16.10.2011, 03:10
quelle
4

Der Konstruktor ist nicht definiert, weil this eine Referenz auf View.OnKeyListener ist. Verwenden Sie stattdessen YourOuterClass.this .

    
Diego Torres Milano 16.10.2011 03:10
quelle
0

Das Schlüsselwort this verweist auf die aktuelle Instanz von View.OnKeyListener class. Der Konstruktor von ArrayAdapter verwendet den aktuellen Kontext als ersten Parameter, bei dem es sich um den Namen Ihrer äußeren Klasse handelt, z. B. View (MyActivity).

Sie sollten MyActivity.this anstelle von this verwenden.

    
Deepika Rajani 31.03.2015 09:46
quelle
0

Ich weiß, das ist lächerlich spät, aber ich verwende normalerweise getActivity() in diesem Fall. So würde es aussehen:

%Vor%     
DipDro420 12.07.2016 23:17
quelle

Tags und Links