簡體   English   中英

Android Studio 自定義 ArrayAdapter 傳遞 HashMap 而不是 ArrayList

[英]Android Studio Custom ArrayAdapter passing HashMap instead of ArrayList

我有一個自定義適配器,我想傳遞一個 HashMap,其中 Foo 是一個自定義對象

HashMap<String, Foo> foos = new HashMap<String, Foo>();
//populate foos and pass to adapter
fooAdapter = new FooAdapter(getContext(), foos);

我的適配器看起來像這樣

public class FooAdapter extends ArrayAdapter<Foo> {
    public FooAdapter(Context context, HashMap<String, Foo> foos) {
        super(context, R.layout.my_layout, foos);
    }

我的問題是將 foos 傳遞給基本構造函數。 如何讓它接受 HashMap 而不是 ArrayList。 如果我將它作為 ArrayList 傳遞,它工作正常,但 HashMap 對我的應用程序更有效,因為我使用的是 Firebase 並且在運行時需要 Key。

使用不可能的ArrayList

那是因為沒有接受HashMapArrayAdapter構造函數。 如果您在第 105 行看到ArrayAdapter 源代碼,您將看到它在內部使用List<T>來存儲其項目。

如果你想使用HashMap ,而不是List剛剛創建自己的HashMapAdapter通過延長BaseAdapter相似,只是替換源代碼中所示的ListHashMap ,並通過了相應的代碼更新這一變化。

暫無
暫無

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

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