Cannot infer type arguments for ArrayAdapter<>

Patpatolino picture Patpatolino · Dec 21, 2015 · Viewed 48.3k times · Source

I am still playing around with my calendar, I already nearly managed to integrate the https://github.com/SundeepK/CompactCalendarView into one of my fragments. There is just one error left, i did some research, others got the problem too for example with ArrayList<>.

Example code:

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

The IDE says:

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

Note: C:...\Uebersicht.java uses or overrides a deprecated API. Note: Recompile with -Xlint:deprecation for details.

I already tried to recompile, but the result doesn't seem to work

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);    

I can post my full Fragment class too if it's necessary, it must be something with my API and the API the ArrayAdapter is using? Don't forget I am just a beginner, I am trying to do just some stuff all by myself.

Answer

Benjamin Scharbau picture Benjamin Scharbau · Dec 21, 2015

You need to pass a Context to the Constructor of ArrayAdapter. You're actually in initializing it in a Fragment class, so this is not valid as a Context. Try calling

final ArrayAdapter adapter = new ArrayAdapter<String>(getActivity(), 
                                android.R.layout.simple_list_item_1,
                                mutableBookings);