Cannot infer type arguments for ArrayAdapter<>

狂风中的少年 提交于 2019-12-19 06:01:19

问题


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.


回答1:


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



回答2:


Try using type in your Adapter declaring. You are missing the type of your mutableBookings:

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



回答3:


Sometimes the methods do not run directly in the activity and do not have access to it, not because of this, but because of the getApplicationContext ()

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


来源:https://stackoverflow.com/questions/34388547/cannot-infer-type-arguments-for-arrayadapter

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!