我有一个HashMap
HashMap map = new HashMap();
在地图上有一些价值.我想一一获得该值并将其添加到列表视图中.地图中的值是
{Intent { cmp=Bluetooth/300 }=300, Intent { cmp=Audio/400 }=400,
Intent { cmp=Video/500 }=500, Intent { cmp=Display/100 }=100, Intent {
cmp=WiFi/200 }=200}
列表视图中有两个textview.
我想在列表视图中显示为
Display 100
WiFi 200
Bluetooth 300.
现在,我公开我的适配器类,这将对您有所帮助…
private class NewAdapter extends BaseAdapter {
public NewAdapter(IntentTestingActivity intentTestingActivity,
HashMap map) {
}
@Override
public int getCount() {
Log.d(TAG, "Map size is: " + map.size());
return map.size();
}
@Override
public Object getItem(int arg0) {
return null;
}
@Override
public long getItemId(int arg0) {
return 0;
}
@Override
public View getView(int position, View view, ViewGroup parent) {
View v = view;
if (v == null) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.class_name, null);
}
TextView className = (TextView) v.findViewById(R.id.name);
TextView tagName = (TextView) v.findViewById(R.id.tag_name);
Integer key_name;
key_name = map.get(name);
Log.d(TAG, "Complete map is: " + map.toString());
// String tag = map.get(tagName).toString();
// Integer name = map.get(className);
String keyName;
keyName = map.toString();
Log.d(TAG, "KeyName is: " + map.get(tag));
for (int i = 0; i < map.size(); ++i)
Log.d(TAG, "Tag is: " + tag + " and Name is: " + name + " and Intent is: "+intent);
HashMap hashmap = map;
for (Entry e : hashmap.entrySet()) {
String key = e.getKey();
int value = e.getValue();
Setkeyname = map.keySet();
Log.d(TAG, "Key: " + key+ " Value: "+value);
}
className.setText(name.toString());
// tagName.setText(keyName);
return v;
}
}
其中name是一个仅包含所有keyValue的String,例如Display,Vedio ect.
提前感谢…
解决方法:
您可以使用getter-setter创建POJO类,并将键和值设置为该类.
List list = new ArrayList();
Iterator> iterator = map.entrySet().iterator();
Entry< String, Integer> entry;
while(iterator.hasNext()){
POJO obj = new POJO();
entry = iterator.next();
Log.d("Key Value",entry.getKey()+" "+entry.getValue());
obj.setKey(entry.getKey());
obj.setValue(entry.getValue());
list.add(obj);
}
然后将此列表设置为您的Adapter类.这将是一个简单的方法.
标签:hashmap,android-listview,android
来源: https://codeday.me/bug/20191101/1985874.html