web-dev-qa-db-fra.com

Impossible d'inférer les arguments de type pour ArrayAdapter <>

Je joue toujours avec mon calendrier, j'ai déjà presque réussi à intégrer le https://github.com/SundeepK/CompactCalendarView dans l'un de mes fragments. Il ne reste qu'une erreur, j'ai fait des recherches, d'autres ont eu le même problème, par exemple avec ArrayList <>.

Exemple de code:

final ArrayAdapter adapter = new ArrayAdapter<>
            (this,Android.R.layout.simple_list_item_1, mutableBookings);

Le IDE dit:

Error:(87, 38) error: cannot infer type arguments for ArrayAdapter<>

Remarque: C: ...\Uebersicht.Java utilise ou remplace une API obsolète. Remarque: Recompilez avec -Xlint: obsolète pour plus de détails. 

J'ai déjà essayé de recompiler, mais le résultat ne semble pas fonctionner

Uebersicht.Java:87: error: cannot find symbol
    final ArrayAdapter adapter = 
          new ArrayAdapter<>(this,Android.R.layout.simple_list_item_1, mutableBookings);


Uebersicht.Java:87: error: cannot find symbol 
final ArrayAdapter adapter = 
          new ArrayAdapter<>(this, Android.R.layout.simple_list_item_1, mutableBookings);    


Uebersicht.Java:87: error: package Android.R does not exist
    final ArrayAdapter adapter = 
          new ArrayAdapter<>(this, Android.R.layout.simple_list_item_1, mutableBookings);    

Je peux aussi poster ma classe complète Fragment si nécessaire. Cela doit être quelque chose avec mon API et l'API utilisée par ArrayAdapter. N'oubliez pas que je ne suis qu'un débutant, j'essaie de faire quelques choses tout seul.

3
Patpatolino

Vous devez passer un contexte au constructeur de ArrayAdapter. Vous êtes en train de l'initialiser dans une classe Fragment, donc this n'est pas valide en tant que contexte. Essayez d'appeler

final ArrayAdapter adapter = new ArrayAdapter<String>(getActivity(), 
                                Android.R.layout.simple_list_item_1,
                                mutableBookings);
15
Benjamin Scharbau

Essayez d’utiliser type dans votre déclaration Adapter. Il vous manque la type de votre mutableBookings:

final ArrayAdapter adapter = new ArrayAdapter<String>(this, Android.R.layout.simple_list_item_1, mutableBookings);
1
Kingfisher Phuoc

Parfois, les méthodes ne s'exécutent pas directement dans l'activité et n'y ont pas accès, pas à cause de cela, mais à cause de la méthode getApplicationContext ()

    ArrayAdapter adapter = new ArrayAdapter<>(getApplicationContext(), Android.R.layout.simple_list_item_1, mutableBookings);
0
H.Josue