[英]get arrayList value into ArrayAdapter for a listView in android studio
[英]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
。
那是因為沒有接受HashMap
的ArrayAdapter
構造函數。 如果您在第 105 行看到ArrayAdapter 源代碼,您將看到它在內部使用List<T>
來存儲其項目。
如果你想使用HashMap
,而不是List
剛剛創建自己的HashMapAdapter
通過延長BaseAdapter
相似,只是替換源代碼中所示的List
與HashMap
,並通過了相應的代碼更新這一變化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.