ArrayMap 与 Gridview 中的 ArrayAdapter
ArrayMap with ArrayAdapter in Gridview
我想在具有两列的 GridView 中显示 key/value 对 ArrayMap 和 ArrayAdapter。
ArrayMap<String, String> testmap = new ArrayMap<String, String>();
testmap.put("one", "eins");
testmap.put("two", "drei");
testmap.put("three", "vier");
testmap.put("four", "fünf");
testmap.put("five", "sechs");
ArrayAdapter<String> itemsAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, testmap);
GridView gridView = (GridView) findViewById(R.id.list);
gridView.setAdapter(itemsAdapter);
这是错误信息:
Error:(49, 45) error: no suitable constructor found for
ArrayAdapter(NumbersActivity,int,ArrayMap<String,String>)
constructor ArrayAdapter.ArrayAdapter(Context,int,int) is not applicable
(argument mismatch; ArrayMap<String,String> cannot be converted to int)
constructor ArrayAdapter.ArrayAdapter(Context,int,String[]) is not applicable
(argument mismatch; ArrayMap<String,String> cannot be converted to String[])
constructor ArrayAdapter.ArrayAdapter(Context,int,List<String>) is not applicable
(argument mismatch; ArrayMap<String,String> cannot be converted to List<String>)
感谢您的帮助!
您需要创建地图列表才能使用ArrayAdapter
ArrayList<ArrayMap<String, String>> testmap = new ArrayList<>();
ArrayMap<String, String> map = new ArrayMap<>();
map.put("one", "eins");
map.put("two", "drei");
map.put("three", "vier");
map.put("four", "fünf");
map.put("five", "sechs");
testmap.add(map);
ArrayAdapter<ArrayMap<String, String>> itemsAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, testmap);
gridView.setAdapter(itemsAdapter);
并且为了保留地图中的值插入,请使用 LinkedHashMap
编辑
要在不同的单元格中显示值,请在每次将值放入其中时创建一个新地图
ArrayMap<String, String> map = new ArrayMap<>();
map.put("one", "eins");
testmap.add(map);
map = new ArrayMap<>();
map.put("two", "drei");
testmap.add(map);
map = new ArrayMap<>();
map.put("three", "vier");
testmap.add(map);
map = new ArrayMap<>();
map.put("four", "fünf");
testmap.add(map);
map = new ArrayMap<>();
map.put("five", "sechs");
testmap.add(map);
我想在具有两列的 GridView 中显示 key/value 对 ArrayMap 和 ArrayAdapter。
ArrayMap<String, String> testmap = new ArrayMap<String, String>();
testmap.put("one", "eins");
testmap.put("two", "drei");
testmap.put("three", "vier");
testmap.put("four", "fünf");
testmap.put("five", "sechs");
ArrayAdapter<String> itemsAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, testmap);
GridView gridView = (GridView) findViewById(R.id.list);
gridView.setAdapter(itemsAdapter);
这是错误信息:
Error:(49, 45) error: no suitable constructor found for
ArrayAdapter(NumbersActivity,int,ArrayMap<String,String>)
constructor ArrayAdapter.ArrayAdapter(Context,int,int) is not applicable
(argument mismatch; ArrayMap<String,String> cannot be converted to int)
constructor ArrayAdapter.ArrayAdapter(Context,int,String[]) is not applicable
(argument mismatch; ArrayMap<String,String> cannot be converted to String[])
constructor ArrayAdapter.ArrayAdapter(Context,int,List<String>) is not applicable
(argument mismatch; ArrayMap<String,String> cannot be converted to List<String>)
感谢您的帮助!
您需要创建地图列表才能使用ArrayAdapter
ArrayList<ArrayMap<String, String>> testmap = new ArrayList<>();
ArrayMap<String, String> map = new ArrayMap<>();
map.put("one", "eins");
map.put("two", "drei");
map.put("three", "vier");
map.put("four", "fünf");
map.put("five", "sechs");
testmap.add(map);
ArrayAdapter<ArrayMap<String, String>> itemsAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, testmap);
gridView.setAdapter(itemsAdapter);
并且为了保留地图中的值插入,请使用 LinkedHashMap
编辑
要在不同的单元格中显示值,请在每次将值放入其中时创建一个新地图
ArrayMap<String, String> map = new ArrayMap<>();
map.put("one", "eins");
testmap.add(map);
map = new ArrayMap<>();
map.put("two", "drei");
testmap.add(map);
map = new ArrayMap<>();
map.put("three", "vier");
testmap.add(map);
map = new ArrayMap<>();
map.put("four", "fünf");
testmap.add(map);
map = new ArrayMap<>();
map.put("five", "sechs");
testmap.add(map);