簡體   English   中英

無法推斷 ArrayAdapter<> 的類型參數

[英]Cannot infer type arguments for ArrayAdapter<>

我仍在擺弄我的日歷,我幾乎已經成功地將https://github.com/SundeepK/CompactCalendarView集成到我的一個片段中。 只剩下一個錯誤,我做了一些研究,其他人也遇到了問題,例如 ArrayList<>。

示例代碼:

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

IDE 說:

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

注意:C:...\Uebersicht.java 使用或覆蓋已棄用的 API。 注意:使用 -Xlint:deprecation 重新編譯以獲取詳細信息。

我已經嘗試重新編譯,但結果似乎不起作用

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

如果有必要,我也可以發布我的完整 Fragment 類,它必須與我的 API 和 ArrayAdapter 使用的 API 相關嗎? 不要忘記我只是一個初學者,我正在嘗試自己做一些事情。

您需要將上下文傳遞給 ArrayAdapter 的構造函數。 您實際上是在 Fragment 類中對其進行初始化,因此this作為 Context 是無效的。 試試打電話

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

有時方法不直接在活動中運行並且無法訪問它,不是因為這個,而是因為 getApplicationContext()

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

嘗試在您的Adapter聲明中使用類型。 您缺少mutableBookingstype

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

如果你在片段中,那么你應該使用

ArrayAdapter<String> adapter = new ArrayAdapter<>(**getContext()**,android.R.layout.simple_list_item_1,items);

當我使用下面的代碼時,我遇到了與 error: cannot infer type arguments for ArrayAdapter<> 相同的錯誤:

ArrayList<String> arrayListward_items=new ArrayList<>(Arrays.asList(wardItemsKisumuSeme));
ArrayAdapter<String> ward_itemsAdapter=new ArrayAdapter<>(this,R.layout.style_spinner,arrayListward_items);
                    wardSpinner.setAdapter(ward_itemsAdapter);

我將此更改為 getApplicationContext() 並能夠修復錯誤,請嘗試:

ArrayList<String> arrayListward_items=new ArrayList<>(Arrays.asList(wardItemsKisumuSeme));
ArrayAdapter<String> ward_itemsAdapter=new ArrayAdapter<>(getApplicationContext(),R.layout.style_spinner,arrayListward_items);
                    wardSpinner.setAdapter(ward_itemsAdapter);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM