在列表视图中显示哈希图中的特定项目
show a specific item from a hashmap in a listview
有没有办法使用 ArrayAdapter 仅显示 ArrayList 中的特定元素
final ListView lst = (ListView) findViewById(R.id.listView);
ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>();
for(int j=0;j<result.length();j++) {
try {
HashMap<String,String> map = new HashMap<String,String>();
map.put("title", result.getJSONObject(j).getString("title"));
map.put("url", result.getJSONObject(j).getString("url"));
list.add(map);
} catch (Exception e) {
e.printStackTrace();
}
}
ArrayAdapter ad= new ArrayAdapter(List.this, android.R.layout.simple_list_item_1,list);
lst.setAdapter(ad);
换句话说:我只想在 ListView 中显示标题元素。
我需要创建 CustomAdapter 吗?
有两种方法可以做到:
- 通过创建自定义适配器
通过创建另一个仅包含您要显示的值的数组列表。如下所示:
ArrayList<String> listTitle = new ArrayList<String>();
for(int j=0;j<result.length();j++) {
try {
HashMap<String,String> map = new HashMap<String,String>();
map.put("title", result.getJSONObject(j).getString("title"));
map.put("url", result.getJSONObject(j).getString("url"));
listTitle.add(result.getJSONObject(j).getString("title"));
list.add(map);
} catch (Exception e) {
e.printStackTrace();
}
}
ArrayAdapter ad= new ArrayAdapter(List.this, android.R.layout.simple_list_item_1,listTitle);
你可以使用 SimpleAdapter。例如
SimpleAdapter ad= new SimpleAdapter(List.this, list, android.R.layout.simple_list_item_1, new String[] {"title"}, new int[] {android.R.id.textview1});
String[] 包含您要用来检索要在 ui
中设置的值的键
是的,在这种情况下您必须创建一个自定义适配器,或者您可以简单地创建一个附加列表并将其用于 ArrayAdapter。
您还可以为您的目的创建扩展列表并将 HashMap 传递给它
如果你需要字符串。
String title=(String)map.get("title");
如果你需要对象。
Object title=map.get("title");
希望它有效。谢谢
有没有办法使用 ArrayAdapter 仅显示 ArrayList 中的特定元素
final ListView lst = (ListView) findViewById(R.id.listView);
ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>();
for(int j=0;j<result.length();j++) {
try {
HashMap<String,String> map = new HashMap<String,String>();
map.put("title", result.getJSONObject(j).getString("title"));
map.put("url", result.getJSONObject(j).getString("url"));
list.add(map);
} catch (Exception e) {
e.printStackTrace();
}
}
ArrayAdapter ad= new ArrayAdapter(List.this, android.R.layout.simple_list_item_1,list);
lst.setAdapter(ad);
换句话说:我只想在 ListView 中显示标题元素。
我需要创建 CustomAdapter 吗?
有两种方法可以做到:
- 通过创建自定义适配器
通过创建另一个仅包含您要显示的值的数组列表。如下所示:
ArrayList<String> listTitle = new ArrayList<String>(); for(int j=0;j<result.length();j++) { try { HashMap<String,String> map = new HashMap<String,String>(); map.put("title", result.getJSONObject(j).getString("title")); map.put("url", result.getJSONObject(j).getString("url")); listTitle.add(result.getJSONObject(j).getString("title")); list.add(map); } catch (Exception e) { e.printStackTrace(); } } ArrayAdapter ad= new ArrayAdapter(List.this, android.R.layout.simple_list_item_1,listTitle);
你可以使用 SimpleAdapter。例如
SimpleAdapter ad= new SimpleAdapter(List.this, list, android.R.layout.simple_list_item_1, new String[] {"title"}, new int[] {android.R.id.textview1});
String[] 包含您要用来检索要在 ui
中设置的值的键是的,在这种情况下您必须创建一个自定义适配器,或者您可以简单地创建一个附加列表并将其用于 ArrayAdapter。
您还可以为您的目的创建扩展列表并将 HashMap 传递给它
如果你需要字符串。
String title=(String)map.get("title");
如果你需要对象。
Object title=map.get("title");
希望它有效。谢谢